在 JavaScript 中,事件传播(Event Propagation)指的是当 DOM 元素上触发事件时,该事件如何在 DOM 树中传播或传递的过程。
事件传播分为三个阶段:
-
事件捕获阶段(Capture Phase): 事件从顶层向下传播,从文档根节点开始逐级向下,直到触发事件的目标元素。
-
目标阶段(Target Phase): 事件达到目标元素后在目标元素上触发,即事件到达目标元素本身。
-
事件冒泡阶段(Bubble Phase): 事件从目标元素开始向上冒泡,逐级向上传播到文档根节点。
这三个阶段构成了所谓的事件流(Event Flow)。在事件传播过程中,可以通过在 DOM 上注册事件处理程序来捕获(Capture)或处理事件,事件会在各个阶段触发注册的事件处理函数。
事件传播的方法:
addEventListener()
方法允许使用第三个参数来设置是否在捕获阶段处理事件(useCapture
参数),默认为false
,即在冒泡阶段处理事件。event.stopPropagation()
方法用于阻止事件在 DOM 树中的传播,即停止事件的进一步传播。event.stopImmediatePropagation()
方法用于阻止事件的传播,并阻止事件处理程序在同一元素上的其他注册事件被调用。
理解事件传播有助于更好地控制事件处理的流程,可以根据需要在捕获或冒泡阶段处理事件,并且可以阻止事件的传播以控制事件处理的范围。
Was this helpful?
0 / 0