01 名词解释
✔️event.stopPropagation :比较常见,用于停止冒泡,阻止事件在 DOM 中继续冒泡。
✔️event.stopImmediatePropagation: 阻止 click 事件冒泡,并且阻止 p 元素上绑定的其他 click 事件的事件监听函数的执行.
02 实践小例子
💻 动动小手实践下,有助于理解哦…
// 摘自 MDN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| <!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() }, false )
p.addEventListener( 'click', (event) => { alert('我是p元素上被绑定的第三个监听函数') }, false )
document.querySelector('div').addEventListener( 'click', (event) => { alert('我是div元素,我是p元素的上层元素') }, false ) </script> </body> </html>
|
03 项目应用场景
场景:
需求就是点击 “ESC”
关闭新建的那个框框,event.stopImmediatePropagation()
可以阻止事件冒泡,以及阻止其他的绑定事件的执行。