正在阅读有关addEventListener
的MDN文档。然后我做了一些实验,最终得到了以下代码:
const inner = document.querySelector('#inner').addEventListener('click',
() => {
console.log('inner');
}, true);
const outer = document.querySelector('#outer').addEventListener('click',
() => {
console.log('outer');
}, true);
<div id="outer">
<div id="inner">click me</div>
</div>
我认为通过将addEventListener
的第三个元素设置为true
,将停止事件传播,从而停止内部div
的事件冒泡。
答案 0 :(得分:0)
您应该使用 stopPropagation 停止事件冒泡。
根据已定义的标准,应禁止使用它,因为它会导致漏洞。
const inner = document.querySelector('#inner').addEventListener('click',
(e) => {
e.stopPropagation();
console.log('inner');
});
const outer = document.querySelector('#outer').addEventListener('click',
() => {
console.log('outer');
});
<div id="outer">
<div id="inner">click me</div>
</div>