两种,冒泡和捕获,不对是捕获和冒泡。
document.body.addEventListener("click",function(){console.log("1")},true);
document.body.addEventListener("click",function(){console.log("4")},false);
document.querySelector("header").addEventListener("click",function(){console.log("2")},true);
document.querySelector("header").addEventListener("click",function(){console.log("3")},false);
说明:
- 先不关注捕获还是冒泡。事件激活后是先进行捕获,然后把函数都进行注册,比如一个元素绑定了多个click事件。
- 然后判断addEventListener的第三个参数,ture表示捕获,false表示冒泡;
- 上面的body,header元素绑定了四个事件,ture优于false执行(两个都有,捕获事件优于冒泡),捕获是从body往header(从外到内,对于都是true而言),冒泡是从header往body(从里到外,对于都是false而言)
- 阻止捕获或者冒泡,抛开这两个东西,也就是阻止事件传播。打开chrome控制台,执行
console.dir(window.Event.prototype),关注里面的四个方法initEvent、preventDefault、stopImmediatePropagation、stopPropagation,第一个初始化事件方法,第二个阻止默认行为,第三个百度一下,第四个stop:停止,propagation:传播。 - target、currenttarget,判定当前元素,绑或解或跳过
本文探讨了JavaScript中事件流的概念,包括捕获阶段和冒泡阶段,并通过实例展示了不同事件监听器的触发顺序。此外,还介绍了如何使用特定的方法来阻止事件的传播。
868

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



