【问题标题】:What phase does stopPropagation effect?stopPropagation 作用于哪个阶段?
【发布时间】:2013-08-26 12:35:49
【问题描述】:

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

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

它会双向工作吗?也就是说,如果我将它设置为捕获模式,它是否也会阻止冒泡阶段。反之亦然。

这是 W3 参考 (stopPropagation)。

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

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

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

    本规范定义了三个事件阶段:捕获阶段目标 阶段;和气泡阶段。事件对象在 使用如下定义的部分传播路径指定顺序。 如果某个阶段不受支持,或者如果事件发生,则必须跳过该阶段 对象的传播已停止。 例如,如果 Event.bubbles 属性设置为 false,气泡阶段将是 跳过,并且 如果 Event.stopPropagation() 在 dispatch,所有阶段都必须跳过

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 2019-03-03
      相关资源
      最近更新 更多