当前位置: 首页 > wzjs >正文

安防网站源码广州网站开发定制设计

安防网站源码,广州网站开发定制设计,音乐网站用dw怎么做,广州网页设计培训班在 JavaScript 中,事件传播(Event Propagation)描述了当一个事件触发时,事件如何在 DOM 树中从触发元素(即事件的目标)向上传播或向下传播。 事件传播有两个主要阶段:捕获阶段(Capt…

在 JavaScript 中,事件传播(Event Propagation)描述了当一个事件触发时,事件如何在 DOM 树中从触发元素(即事件的目标)向上传播或向下传播

事件传播有两个主要阶段:捕获阶段(Capture Phase)和冒泡阶段(Bubble Phase)。

1. 捕获阶段(Capture Phase)

  • 含义:事件从 document 元素开始,沿着 DOM 树向目标元素传播,直到触发事件的元素。也叫事件捕获阶段
  • 传播顺序:捕获阶段是从外层的元素到目标元素的过程。即,先触发文档级别的监听器,然后是父元素,直到目标元素。
事件捕获过程:
document -> html -> body -> ... -> targetElement
  • 捕获阶段的作用是捕捉到事件并做出处理,通常可以对事件做一些预处理。
  • 默认情况下,addEventListenercapture 选项是 false,即不启用捕获阶段

2. 冒泡阶段(Bubble Phase)

  • 含义:事件从触发的目标元素开始,沿着 DOM 树向上传播,直到 document 元素。也叫事件冒泡阶段
  • 传播顺序:冒泡阶段是从目标元素开始,逐层向上传播到根元素。
事件冒泡过程:
targetElement -> ... -> body -> html -> document
  • 冒泡是事件传播的默认行为,它是大多数开发者所熟悉的事件传播方式。
  • 事件会在目标元素被触发后,从目标元素向上传递,直到到达 document

捕获与冒泡的使用

addEventListener 方法可以通过第三个参数 capture 来控制事件监听器是在捕获阶段触发还是冒泡阶段触发。

控制传播阶段
  • 捕获阶段capture: true):监听器会在事件从根元素到目标元素的过程中触发。
  • 冒泡阶段capture: false):监听器会在事件从目标元素向上传播的过程中触发。

默认情况下,addEventListener 会在冒泡阶段触发事件(capture: false)。要使事件在捕获阶段触发,可以将 capture 设置为 true

示例代码:

捕获阶段:
const parentElement = document.getElementById("parent");
const childElement = document.getElementById("child");// 捕获阶段监听器
parentElement.addEventListener("click", () => {console.log("捕获阶段: 父元素被点击");
}, true); // capture: truechildElement.addEventListener("click", () => {console.log("捕获阶段: 子元素被点击");
}, true); // capture: true
冒泡阶段:
const parentElement = document.getElementById("parent");
const childElement = document.getElementById("child");// 冒泡阶段监听器
parentElement.addEventListener("click", () => {console.log("冒泡阶段: 父元素被点击");
}, false); // 默认,冒泡阶段childElement.addEventListener("click", () => {console.log("冒泡阶段: 子元素被点击");
}, false); // 默认,冒泡阶段
输出:
  1. 如果点击了 childElement

    • 捕获阶段:parentElementchildElement(按顺序)
    • 冒泡阶段:childElementparentElement(按顺序)

捕获与冒泡的关系

捕获和冒泡是事件传播的两个阶段,它们是独立的:

  • 捕获阶段:从最外层的元素document开始到目标元素。
  • 冒泡阶段:从目标元素开始到最外层document的元素。

通过事件监听器的 capture 选项,开发者可以选择在哪个阶段处理事件。


阻止事件传播

你可以通过 event.stopPropagation() 方法来阻止事件在捕获和冒泡阶段继续传播。

  • 阻止捕获与冒泡

    event.stopPropagation();
    
  • 阻止默认行为:比如阻止链接跳转:

    event.preventDefault();
    

http://www.dtcms.com/wzjs/581605.html

相关文章:

  • php网站开发环境一wordpress的开发文档
  • 国家重大建设项目库网站WordPress stock
  • 怎么下载网站程序html制作百度登录页面
  • 做网站就是做app公众号开发商城前景如何
  • 织梦网站怎样做seoseo优化方案书
  • 海南网站建设哪家不错暗色系网站
  • wordpress无法修改主页seo1新地址在哪里
  • 长宁网站推广公司大连开发区网站开发公司
  • 英语不好的做网站运营可以吗网站前端工资
  • 建网站业务员品牌运营总监
  • 免费做网站怎么做网站吗人与马做的网站
  • 凤凰一级a做爰片免费网站上海网站建设与设计公司好
  • 做悬赏任务的网站宜宾建设局网站
  • 贵州建网站南宁手机平台网站
  • 网站建设外包需要注意哪些网站开发合同及报价
  • 怎样免费推广网站动易网站建设
  • 传统企业如果建立网站wordpress阿里云服务器开启伪静态
  • 北京站社交营销
  • 织梦网站如何做软件下载网页制作与网站开发从入门到精通
  • wap网站微信一键登录免费的网站建设有哪些
  • 海南省城乡建设厅网站首页网站开发三层架构
  • 网站制作公司费用做网站效果怎么样
  • 做网站数据对电脑要求如何做网站在售产品分析
  • 网站推广计划书具体包含哪些基本内容?在线生成网页网站
  • 做隐私的网站网站短链接生成
  • 织梦iis7搭建网站wordpress目录关seo
  • 网站备案取消重新备案南京网站建设方案
  • 印后设备网站建设企业系统建设
  • 做抖音风的网站wordpress 升级 无法创建目录
  • 衡阳网站推广天津网站定制