JavaScript 中的事件流描述了事件从页面中接收到的顺序。事件流包括两个阶段:捕获阶段和冒泡阶段。
事件捕获(Event Capturing):
事件捕获是指事件从顶层元素向下传播到最具体的元素的过程。在捕获阶段,事件首先在文档的顶层元素(如 window
对象)开始,然后沿着 DOM 树向下传播,直到达到触发事件的目标元素。
事件冒泡(Event Bubbling):
事件冒泡是指事件从目标元素开始,沿着 DOM 树向上传播到最顶层的元素的过程。在冒泡阶段,事件会从触发事件的目标元素开始,逐级向上传播,直到达到文档的顶层元素。
事件流程示意图:
|-> (Capture) -> | (Target) | -> (Bubble) -> |
| Top Element | Element | Window |
简要说明:
- 事件捕获阶段: 事件从最外层的元素开始传播,一直传递到触发事件的目标元素。
- 事件冒泡阶段: 事件从触发事件的目标元素开始向上传播,一直传递到最外层的元素。
在实际使用中,可以通过 addEventListener
方法的第三个参数来控制事件的处理方式,比如指定 useCapture
参数为 true
表示使用捕获阶段处理事件,为 false
则表示使用冒泡阶段处理事件(默认为 false
)。
element.addEventListener('click', eventHandler, useCapture);
Was this helpful?
0 / 0