浏览器事件机制中 事件触发的三个阶段

简介: javaScript事件的三个阶段:捕获阶段 目标阶段 冒泡阶段 addEventListener

javaScript事件的三个阶段:捕获阶段 目标阶段 冒泡阶段

捕获阶段 概念:

事件从根节点流向目标节点,途中流经各个DOM节点,在各个节点上触发捕获事件,直到达到目标节点。

目标阶段 概念:

事件到达目标节点时,就到了目标阶段,事件在目标节点上被触发

冒泡阶段 概念:

事件在目标节点上触发后,不会终止,一层层向上冒,回溯到根节点


addEventListener

attachEvent (IE 特有)

的第三个参数的作用,通过查文档可以知,addEventListener的第三个参数是一个布尔类型
1、第三个参数是false:事件从里到外执行,这种效果叫事件冒泡
2、第三个参数是true:事件从里到外执行,执行顺序颠倒过来了,这种效果叫做事件捕获。

a. 事件从里到外执行,这种效果叫事件冒泡

b. 事件从里到外执行,执行顺序颠倒过来了,这种效果叫做事件捕获。

注意:事件发生的时候,要经过事件的三个阶段,我们常常使用的是事件冒泡阶段,而其他两个阶段不能人为干预。

小结:事件的三个阶段

第一阶段:捕获阶段
第二阶段:目标阶段(执行当前点击的元素)
第三阶段:冒泡阶段

事件三个阶段如下如

第一阶段:捕获阶段

_

第二阶段:目标阶段(执行当前点击的元素)

第三阶段:冒泡阶段

_

注意,注册事件有三种,其中onclick、attachEvent没有第三个参数,实际上我们无法通过onclick、attachEvent来干预事件的第一阶段和第二阶段,并且很多时候我们只关心事件的第三阶段,即冒泡阶段。

相关文章
|
5月前
|
JavaScript 开发者
什么是浏览器环境下事件的 Propagation
什么是浏览器环境下事件的 Propagation
|
5月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
213 0
|
2月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
58 1
|
2月前
|
JavaScript API
VUE——监听浏览器关闭及标签页关闭事件
VUE——监听浏览器关闭及标签页关闭事件
87 0
|
3月前
|
JavaScript 前端开发 开发者
浏览器事件机制详解
浏览器事件机制详解
34 1
|
3月前
|
JavaScript
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
39 1
|
3月前
|
前端开发 JavaScript
js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)
js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)
261 0
|
5月前
|
JavaScript 前端开发
js阻止浏览器默认事件和防止事件传播事件
js阻止浏览器默认事件和防止事件传播事件
66 3
|
5月前
|
JavaScript 开发者
什么是浏览器环境下的 Event Propagation(事件传播)
什么是浏览器环境下的 Event Propagation(事件传播)
|
5月前
|
Web App开发 移动开发 JavaScript
【Vue版】实现拖拽、排序效果(注意,这个方法在chrome谷歌浏览器上面不适用,dragend会情不自禁触发drag事件先执行,有点像浏览器的一个bug)
【Vue版】实现拖拽、排序效果(注意,这个方法在chrome谷歌浏览器上面不适用,dragend会情不自禁触发drag事件先执行,有点像浏览器的一个bug)
下一篇
无影云桌面