大误:关于js事件stopPropagation

73 阅读1分钟

今天,浏览掘金的时候看了一篇关于js事件流的解释,越看越觉得不对劲,但是由于本人脑容量有限,以前学过的关于js事件流的知识忘得差不多了,因此又去看了一遍mdn,发现了一直存在的误区!

事件 大家都知道,js事件流分为捕获过程、触发过程和冒泡过程3个阶段。

在给dom元素添加事件的时候使用addEventListener,第三个参数是true或者false或者一个对象。当为true的时候使用捕获方式,使用false的时候使用冒泡方式,二者只能二选一。在事件处理过程中,event有个方法叫stopPropagation(以前叫cancelBubble),意思是停止传播,也就是说:

当使用捕获方式的时候,停止往下传播事件;当使用冒泡方式的时候,停止向上传播事件

以前一直记成了停止冒泡,也难怪cancelBubble会被stopPropagation取代,取名误事啊误事啊!