JavaScript中事件冒泡与捕获如何区分和运用?

2026-04-27 17:230阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计929个文字,预计阅读时间需要4分钟。

JavaScript中事件冒泡与捕获如何区分和运用?

请提供需要改写的原文内容,以便我进行修改。

事件捕获阶段:从 window 到目标元素的“下行路径”

当点击一个嵌套很深的 <button> 时,事件会先从 window 开始,依次经过 document<html><body>、外层 <div>……最后到达那个 <button>。这个过程叫捕获阶段。

只有显式开启才能监听它:addEventListener(type, handler, true)addEventListener(type, handler, { capture: true })

  • 默认不启用,所以大多数 addEventListener 都只响应冒泡阶段
  • 捕获阶段无法通过 event.stopPropagation() 中断冒泡(因为冒泡还没开始)
  • 适合做全局拦截,比如在 <body> 捕获所有点击前统一做权限判断

事件冒泡阶段:从目标元素到 window 的“上行路径”

点击 <button> 后,事件会反过来,从它自己出发,逐级向上传给父 <div><body>documentwindow。这是默认行为,也是日常最常打交道的阶段。

阅读全文

本文共计929个文字,预计阅读时间需要4分钟。

JavaScript中事件冒泡与捕获如何区分和运用?

请提供需要改写的原文内容,以便我进行修改。

事件捕获阶段:从 window 到目标元素的“下行路径”

当点击一个嵌套很深的 <button> 时,事件会先从 window 开始,依次经过 document<html><body>、外层 <div>……最后到达那个 <button>。这个过程叫捕获阶段。

只有显式开启才能监听它:addEventListener(type, handler, true)addEventListener(type, handler, { capture: true })

  • 默认不启用,所以大多数 addEventListener 都只响应冒泡阶段
  • 捕获阶段无法通过 event.stopPropagation() 中断冒泡(因为冒泡还没开始)
  • 适合做全局拦截,比如在 <body> 捕获所有点击前统一做权限判断

事件冒泡阶段:从目标元素到 window 的“上行路径”

点击 <button> 后,事件会反过来,从它自己出发,逐级向上传给父 <div><body>documentwindow。这是默认行为,也是日常最常打交道的阶段。

阅读全文