如何捕获stopPropagation事件

时间:2015-02-11 12:11:52

标签: javascript javascript-events stoppropagation

例如,我们有一个页面,其中包含一个onclick事件监听器的链接。但是处理程序会stopPropagation。我是如何处理click事件的,如果它不再冒泡到root了?

e.g。

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

1 个答案:

答案 0 :(得分:4)

DOM事件传播分三个阶段进行:捕获阶段,目标阶段和泡沫阶段。粗略地说,事件首先一直向下到目标,到达目标然后再回来。

默认情况下,事件处理程序附加在最终的泡泡阶段。如果在第一个捕获阶段附加单击事件侦听器,它将在前一个处理程序有机会调用stopPropagation之前运行。

有关更深入的解释,请参阅this question