事件流的简短介绍

本文详细介绍了前端事件流的三个阶段:事件捕获、目标阶段和事件冒泡,以及如何通过addEventListener方法来控制事件处理程序的执行顺序。通过设置事件监听器的捕获与冒泡阶段,可以实现先冒泡再捕获的效果,即调整添加监听器的顺序,将冒泡阶段的事件处理程序放在捕获阶段之前。这一概念对于前端开发者理解和优化事件处理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端事件流

1、含义

html和js之间进行交互,了解事件的调用时间先了解事件流

事件流:事件描述的是从页面中接收事件的顺序,DOM2级事件流包括几个阶段。“事件捕获阶段”“处于目标阶段”“事件冒泡阶段”

  • 事件捕获:一个事件触发后,从Window对象触发,不断经过下级节点,直至目标节点。在事件到达目标节点之前的过程为捕获阶段,经过的节点有对应触发的事件 — 【事件捕获时(true), 先执行body事件再执行div事件】

  • 事件冒泡:事件到达目标节点后,沿着捕获阶段的路线进行原路返回,经过的节点触发对应的事件 — 【事件冒泡(false), 先执行div事件,再执行body事件】

  • addEventListener(event,function,useCapture布尔值) //默认为false冒泡,true为捕获

2、addEventListener

addEventListener:DOM2级时间新增的指定事件处理程序的操作。此方法接收的三个参数为:“要处理的时间名”“事件处理程序的函数”“一个布尔值”

  • 当布尔值为true时,表示“捕获阶段”调用事件处理程序
  • 当布尔值为false时,表示“冒泡阶段”调用事件处理程序

3、让事件先冒泡再捕获

如何实现先冒泡再捕获
  • 在w3c标准中正常的执行顺序为:应先捕获再冒泡。
  • 现要实现先冒泡再捕获,给一个元素绑定两个addEventListener。其中第三个参数为true(捕获)和false(冒泡),调整正常的代码顺序,将设置false的监听事件放在设置true的监听事件前面即可。此可使冒泡先执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值