Javascript事件传播无法按预期工作

时间:2014-10-14 02:51:35

标签: javascript javascript-events event-propagation

window.document.addEventListener('click', function(e) {
        event.preventDefault();
        event.stopPropagation();
        setTimeout(function(){e.target.dispatchEvent(e);}, 2000);
}, true);

<button onclick="console.log('test')">test</button>

为什么2秒后事件没有发生? (它永远不会发射)

1 个答案:

答案 0 :(得分:0)

根据W3C DOM Level 3 Events Specficiationevent flow有三个阶段:捕获,目标和泡沫。如果&#34; ...在调度之前调用了Event.stopPropagation(),则必须跳过所有阶段&#34;。

因为在调度事件之前已经调用了 stopPropagation ,所以不会执行任何阶段,包括目标阶段