例如,我们有一个页面,其中包含一个onclick
事件监听器的链接。但是处理程序会stopPropagation
。我是如何处理click
事件的,如果它不再冒泡到root了?
e.g。
document.addEventListener('click', function(e) {console.log(e);});
a.onclick = function(e) {e.stopPropagation();};
答案 0 :(得分:4)
DOM事件传播分三个阶段进行:捕获阶段,目标阶段和泡沫阶段。粗略地说,事件首先一直向下到目标,到达目标然后再回来。
默认情况下,事件处理程序附加在最终的泡泡阶段。如果在第一个捕获阶段附加单击事件侦听器,它将在前一个处理程序有机会调用stopPropagation
之前运行。
有关更深入的解释,请参阅this question。