关于浏览器的事件流

一 事件流的定义

事件流:DOM(文档对象模型)结构是一个树形结构,当一个HTML元素产生一个事件时,该事件会在元素节点与根节点之间的路径传播,路径所经过的节点都会收到该事件,这个传播过程可称为DOM事件流。

二 事件流的阶段

1 捕获阶段:事件从Document节点自上而下向目标节点传递的阶段

2 目标阶段:真正的目标节点正在处理事件的阶段

3 冒泡阶段:事件从目标节点自下而上像Document节点传递的阶段

三 捕获事件流

捕获事件可以在支持W3C标准的浏览器中使用addEventListener处理,该函数有以下三个参数:

1 事件名

2 触发执行函数

(e) => {
  const {
    target,
    currentTarget
  } = e
  console.log(`target是${target.id}`)
  console.log(`currentTarget是${currentTarget.id}`)
}

3 冒泡阶段还是捕获阶段执行,默认是在冒泡阶段执行

注:e.target:触发事件的元素

        e.currentTarget:绑定事件的元素(就是冒泡阶段和捕获阶段,事件传递的当前节点)

四 阻止事件流

阻止事件流的常用两种方式

e.stopPropagation():阻止目标元素的事件冒泡到父级元素

e.preventDefault():取消一个目标元素的默认行为(例如:a 链接,input标签的submit等)

参考文章:传送门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值