Если слушатель был добавлен в фазу захвата , а не в фазу всплывающего , то вы можете предотвратить захват события дочерними элементами тем же способом: event.stopPropagation()
.
Например, в этом коде вы увидите, что слушатель #inner
никогда не запускается, потому что слушатель #outer
останавливает распространение события вниз:
document.querySelector('#outer').addEventListener(
'click',
function(event) {
console.log('propagation stopped');
event.stopPropagation();
},
true // Add listener to *capturing* phase
);
document.querySelector('#inner').addEventListener(
'click',
function(e) {
console.log('inner clicked');
}
);
<div id="outer">
outer
<div id="inner">
inner
</div>
</div>