【发布时间】:2021-02-28 14:06:36
【问题描述】:
这张图片取自 DOM ENLIGHTENMENT 书。它说 stopPropagation() 将停止捕获和冒泡事件流阶段。
我知道stopPropagation()会停止传播,不会在冒泡阶段执行回调函数。
但是在下面的代码sn-p中,在按钮上使用了stopPropagation()之后,body事件回调方法还是被执行了。
stopPropagation() 是否也会在捕获阶段停止事件流阶段?
const button = document.querySelector('button');
document.body.addEventListener('click', e => {
console.log('Body event triggered');
}, true);
button.addEventListener('click', e => {
console.log('button is clicked 1');
});
button.addEventListener('click', e => {
e.stopPropagation();
console.log('button is clicked 2');
});
button.addEventListener('click', e => {
console.log('button is clicked 3');
});
<button> click me </button>
【问题讨论】:
标签: javascript dom