在咱们阻止节点事件向上冒泡时,一般会使用stopPropagation
这个方法,可是忽然发现还有一个stopImmediatePropagation
方法,一样也能够阻止事件冒泡,分析一下不一样。bash
stopPropagation
能够阻止事件冒泡,但不会影响改事件的其余监听方法执行,而stopImmediatePropagation
不只阻止事件冒泡,还会阻止该事件后面的监听方法执行举例说明:spa
var div = document.getElementById('div');
// 添加第一个监听事件
div.addEventListener('click', function(){
console.log('click event 1')
});
// 添加第二个监听事件,stopPropagation阻止冒泡
div.addEventListener('click', function(){
console.log('click event 2')
});
// 添加第三个监听事件,stopImmediatePropagation阻止冒泡
div.addEventListener('click', function(){
console.log('click event 3')
});
// 添加第四个监听事件,stopPropagation阻止冒泡
div.addEventListener('click', function(){
console.log('click event 4')
});
复制代码
当点击以后,执行分别是code
click event 1
click event 2
click event 3 # stopImmediatePropagation阻止后续方法执行
复制代码