1,JS事件的3个阶段为捕获、目标、冒泡;而低版本IE不支持捕获阶段
2,在浏览器解析事件的时候,有两种触发方式:一种叫做Bubbling(冒泡),另外一种叫做Capturing(捕获)。
- 冒泡的方式效果就是当一个DOM元素的某事件例如click点击事件被触发时,依次它的父元素的click事件也被触发,一直传递到最顶层的body元素为止。
- 捕获的触发方式正好相反,当某个元素的click事件被触发时,先从最顶层的body元素click事件被触发开始,一直传递到真正被触发的元素为止。
W3C事件流
1,W3C事件流支持捕获和冒泡方法,并且可以在一个DOM上绑定多个事件处理器,各自不会冲突
2,W3C事件流可以通过addEventListener()和removeEventListener()来添加和删除事件,这两个方法接受三个参数,(事件类型,事件处理函数,布尔值),其中布尔值如果设置为false,表示该事件处理函数在事件冒泡阶段触发;如果设置为true,表示该事件处理函数在事件捕获阶段触发,事件冒泡阶段不再触发
- 需要注意的一点是在使用removeEventListener()方法删除事件时,参数要和创建事件时的参数相同,即第二个参数不支持通过匿名函数来创建,否则会被视为不是同一个方法(IE事件流规则和W3C相同)。
3,W3C事件中可以通过preventDefault()方法阻止事件的默认行为
4,W3C调用e.stopPropagation();或者 return false来阻止冒泡事件
IE事件流
1,IE事件流只支持事件冒泡,不支持事件捕获
2,IE事件流可以通过可以通过attachEvent()和detachEvent()来添加和删除事件,这两个方法只接受两个参数,依次为事件类型(“on”+事件类型),事件处理函数
3,IE通过window.event.returnValue=false阻止事件的默认行为
4,IE通过设置window.event.cancleBubble=true来阻止冒泡事件
本文深入解析了JS事件的捕获、目标、冒泡三个阶段,对比了W3C与IE事件流的区别,包括事件触发方式、事件绑定与删除、阻止默认行为及冒泡等关键操作。
&spm=1001.2101.3001.5002&articleId=104850887&d=1&t=3&u=aeecf063ff5b4bc6b75d17148d043258)
927

被折叠的 条评论
为什么被折叠?



