Appearance
event.stopImmediatePropagation
本节目标:理解“event.stopImmediatePropagation”的核心思路,并能把它用于实际开发或面试表达。 阻止事件冒泡并且阻止相同事件的其他侦听器被调用。 语法****节
event.stopImmediatePropagation();备注****节 如果有多个相同类型事件的事件监听函数绑定到同一个元素,当该类型的事件触发时,它们会按照被添加的顺序执行。如果其中某个监听函数执行了event.stopImmediatePropagation()方法,则当前元素剩下的监听函数将不会被执行。(译者注:注意区别event.stopPropagation) 例子 节
<!DOCTYPE html><html> <head> <style> p { height: 30px; width: 150px; background-color: #ccf; } div {height: 30px; width: 150px; background-color: #cfc; } </style> </head> <body> <div> <p>paragraph</p> </div> <script> const p = document.querySelector('p') p.addEventListener("click", (event) => { alert("我是p元素上被绑定的第一个监听函数
"); }, false);
p.addEventListener("click", (event) => { alert("我是p元素上被绑定的第二个监听函数
"); event.stopImmediatePropagation(); //执行stopImmediatePropagation方法,阻止click事件冒泡,并且阻止p元素上绑定的其他click事件的事件监听函数的执行
. }, false);
p.addEventListener("click",(event) => { alert("我是p元素上被绑定的第三个监听函数
"); //该监听函数排在上个函数后面,该函数不会被执行
}, false);
document.querySelector("div").addEventListener("click", (event) => { alert("我是div元素,我是p元素的上层元素
"); // p元素的click事件没有向上冒泡,该函数不会被执行
}, false); </script> </body></html>浏览器兼容性 > 来自
<https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopImmediatePropagation>