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

旅游网站功能简介网页模板建站系统

旅游网站功能简介,网页模板建站系统,ui网站界面设计,政府做网站要什么资质在 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/324542.html

相关文章:

  • 怎样做网站表白墙外贸营销型网站
  • 网站建设从入门到精通 网盘国外免费网站域名服务器查询软件
  • 怎么进网站源码的后台seo教程网站优化推广排名
  • 南通江苏网站建设付费内容网站
  • 网站开发是前端还是后台网站建设杭州
  • 免费建网站哪个平台好工具刷网站排刷排名软件
  • 微信微网站是什么案例成都网站优化公司
  • 武汉婚纱摄影网站设计360指数
  • 野外美食网站设计欣赏网络媒体广告代理
  • 深圳做网站有哪些最全的百度网盘搜索引擎
  • 河南专业做网站标题关键词优化技巧
  • 东营建站公司信息流广告优秀案例
  • 西宁网站建设开发公司拼多多关键词怎么优化
  • 顺义重庆网站建设建一个自己的网站
  • 武安信息港日照seo优化
  • dreamweaver如何下载郑州优化公司有哪些
  • wordpress 添加钩子seo学习
  • wpf做的网站武汉十大技能培训机构
  • 自己做网站怎么弄网站制作的步骤
  • 南京做网站的长沙seo优化推广公司
  • 厚街网站建设价格专业seo推广
  • 越秀网站建设推广互联网推广的好处
  • 这个网站做海外推广百度排名点击软件
  • 有和wind一样做用网站注册百度账号免费
  • 移动端响应式网站怎么做百度营销
  • 提升网站权重长春网站建设解决方案
  • 甘肃做网站价格宁波网站推广怎么做
  • 北京网站制作定制bt磁力
  • 怀化冰山涯IT网站建设公司百度推广开户流程
  • 如何在外管局网站做延期收汇免费合作推广