根据 quirksmode,现代浏览器有一个捕获阶段和一个冒泡阶段。见这里。
如果我在事件处理程序中使用stopPropagation(通过布尔参数设置为任一阶段)它将如何工作?
它会双向工作吗?也就是说,如果我将它设置为捕获模式,它是否也会阻止冒泡阶段。反之亦然。
这是 W3 参考 ( stopPropagation )。
我正在对事件处理程序进行故障排除,并且需要准确了解其stopPropagation()
功能。
根据 quirksmode,现代浏览器有一个捕获阶段和一个冒泡阶段。见这里。
如果我在事件处理程序中使用stopPropagation(通过布尔参数设置为任一阶段)它将如何工作?
它会双向工作吗?也就是说,如果我将它设置为捕获模式,它是否也会阻止冒泡阶段。反之亦然。
这是 W3 参考 ( stopPropagation )。
我正在对事件处理程序进行故障排除,并且需要准确了解其stopPropagation()
功能。
在捕获阶段停止传播将阻止进一步的处理程序运行,包括在冒泡阶段注册的处理程序。
W3C 关于事件流的文档说(强调我的):
本规范定义了三个事件阶段:捕获阶段;目标阶段;和泡沫阶段。事件对象使用如下定义的部分传播路径以指定的顺序完成这些阶段。 如果某个阶段不受支持,或者事件对象的传播已停止,则必须跳过该阶段。例如,如果该
Event.bubbles
属性设置为 false,则将跳过气泡阶段,如果Event.stopPropagation()
在调度之前已调用,则必须跳过所有阶段。