如何捕捉 stopPropagation 事件

How to catch event that was stopPropagation

例如,我们有一个带有 link 的页面,上面有 onclick 事件侦听器。但是处理程序使 stopPropagation。如果它不再冒泡到 root,我该如何处理 click 事件?

例如

document.addEventListener('click', function(e) {console.log(e);});
a.onclick = function(e) {e.stopPropagation();};

DOM 事件传播分为三个阶段:捕获阶段、目标阶段和冒泡阶段。粗略地说,事件首先向下移动到目标,到达目标然后向上移动。

默认情况下,事件处理程序附加在最后的冒泡阶段。如果您在第一个捕获阶段附加一个点击事件侦听器,它会在前一个处理程序有机会调用 stopPropagation.

之前 运行

请参阅 this question 以获得更深入的解释。