事件冒泡

来源:11-3 什么是事件代理(面试必考)

EricTai

2022-04-11

        <div id="div3">
            <a href="#">a1</a><br>
const div3 = document.getElementById('div3')
bindEvent(div3, 'click', 'a', function (event) {
    event.preventDefault()
    event.stopPropagation();
    alert(this.innerHTML)
})

老师您好,上述代码是否可以理解成onclick监听器其实是绑定在div3标签,如果点击a标签,这个点击事件要向上冒泡到div3才被监听到并执行回调呢?
a标签如果监听onclick事件,是先执行onclick再执行href跳转,但是此时在a标签并没有监听onclick事件,为什么在此不会跳转到‘#’呢,这个时候不是还没冒泡到div3标签被监听到并执行吗?

写回答

1回答

双越

2022-04-12

是冒泡到 div3 才被触发执行的。

0
2
双越
回复
EricTai
event.preventDefault() 阻止是当前事件,并不是只阻止 div3 。 如果按你理解,那阻止 a 跳转,就必须要绑定在 a 上了 —— 实际不是这样的。
2022-04-12
共2条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程