事件流是什么?怎样理解事件流和事件冒泡

事件流是什么?怎样理解事件流和事件冒泡
最新回答
笑里藏泪

2021-10-14 10:23:05

事件流是描述页面接收事件顺序的概念。事件薯衫在元素节点间以特定顺序传播的过程称为 DOM 事件流。例如,当给一个 div 注册点击事件时:

事件流包括三个阶段:

1. 捕获阶段

2. 当前目标阶段

3. 冒泡阶段

事件冒泡数祥腔是 IE 提出的概念,事件开始于最具体的元素,然后逐级向上传播至 DOM 最顶层节点。

事件捕获则是由网景提出,从 DOM 最顶层节点开始,逐级向下传至最具体的元素。

将石头投入水中,下降是事件冒泡的过程,从顶层至具体元素的捕获过程。之后产生气泡,从最低点至水面,即事件冒泡。

事件在元素节点间以特定顺序传播的过程即 DOM 事件流。

注意:

在 JS 代码中,只能执行捕获或冒泡阶段之一。

onclick 和 attachEvent 只能得到冒泡阶段。

在 addEventListener(type, listener[, useCapture]) 函数中,第三个参数若为 true,表示在捕获阶段调用事件处理程序;若为 false(默认值),则在冒泡阶段调用。

实际开发中,我们很少使用事件捕获,更倾向于关注事件冒泡。

有些事件不支持冒泡,如 onblur、onfocus、onmouseenter、宴消onmouseleave。

事件冒泡有时会引发问题,但也能巧妙地解决某些事件,我们稍后深入探讨。

您可能感兴趣问答