什么阶段停止传播效果?

时间:2013-08-26 12:35:50

标签: javascript

根据quirksmode,现代浏览器具有捕获阶段和冒泡阶段。见here.

如果我在我的事件处理程序中使用stopPropagation(通过布尔参数设置为任一阶段)它将如何运作?

两种方式都有效吗?也就是说,如果我将其设置为捕获模式,它还会阻止冒泡阶段。反之亦然。

这是W3参考(stopPropagation)。

我正在对事件处理程序进行故障排除,并且需要准确了解stopPropagation()的功能。

1 个答案:

答案 0 :(得分:5)

在捕获阶段停止传播将阻止更多处理程序运行,包括在冒泡阶段注册的处理程序。

W3C documentation on event flow说(强调我的):

  

此规范定义了三个事件阶段:捕获阶段; 目标   相;和泡沫阶段。事件对象完成了这些阶段   使用如下定义的部分传播路径指定的顺序。   如果不支持,或者事件发生,则必须跳过某个阶段   对象的传播已经停止。例如,如果   Event.bubbles属性设置为false,泡沫阶段将为   跳过,如果Event.stopPropagation()之前已被调用过   发送,必须跳过所有阶段