如何捕捉 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 以获得更深入的解释。
例如,我们有一个带有 link 的页面,上面有 onclick
事件侦听器。但是处理程序使 stopPropagation
。如果它不再冒泡到 root,我该如何处理 click
事件?
例如
document.addEventListener('click', function(e) {console.log(e);});
a.onclick = function(e) {e.stopPropagation();};
DOM 事件传播分为三个阶段:捕获阶段、目标阶段和冒泡阶段。粗略地说,事件首先向下移动到目标,到达目标然后向上移动。
默认情况下,事件处理程序附加在最后的冒泡阶段。如果您在第一个捕获阶段附加一个点击事件侦听器,它会在前一个处理程序有机会调用 stopPropagation
.
请参阅 this question 以获得更深入的解释。