Js 事件原理与事件委托

网友投稿 608 2022-05-30

事件原理三阶段

捕获(有外向内)、目标、冒泡(由内向外)

事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。即子标签发生事件后,向父级发送该事件,一直追溯到document。如:点击一个嵌套在 body中的button,则该button的onclick事件也会传递给body、document中,触发他们的onclick里触发的函数。

案例

                        

    
    
    

三阶段原理过程:

阻止事件冒泡

当对子元素添加了事件侦听后,执行的时候会触发父元素相同类型的事件,此时需要阻止事件冒泡。

早期IE是没有捕获阶段的,只有冒泡,cancelBubble为阻止冒泡。后来的stopPropagaiton,既有阻止冒泡的功能,也有阻止捕获的功能,但如果译为阻止传播,那么跟cancel就是两个东西了,所以还是叫做阻止冒泡。阻止事件冒泡(传播)的方法是:

e.stopPropagation();通用

e.cancelBubble=true;仅适用在IE8及以下

扩展:

e.currentTarget 是事件侦听事件对象(什么对象执行addEventListener函数就是谁)

e.target 事件的目标对象 真实点击的最终目标对象

e.srcElement 事件的目标对象,兼容IE

事件函数中this默认等同于e.currentTarget,都是事件侦听的对象

深度学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:快递100查询地图轨迹API接口案例代码
下一篇:Quill富文本编辑器的实践 - DevUI
相关文章