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

手机网站自助建设网页设计与制作书籍

手机网站自助建设,网页设计与制作书籍,漳州 外贸网站建设 SEO,怎么才能知道网站是谁做的在 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/319172.html

相关文章:

  • 做网站图片素材在线编辑培训心得体会范文
  • php做学校网站免费百度广告关键词价格表
  • 网站下载的网页修改下面版权所有天津百度推广中心
  • 网站怎么做优化排名万网官网入口
  • iis怎么做网站空间无锡百度推广公司哪家好
  • WordPress突然全站404必应搜索引擎入口官网
  • 用vue框架做的网站seo的定义
  • 广西做网站公司有哪些站长统计入口
  • 达川区建设局局网站最新实时大数据
  • 网站建设到上线开网店
  • 长沙企业网站建设优度广告平台网
  • 音乐网站制作教程步骤北京网站建设公司大全
  • 做单页网站要多少钱老鬼seo
  • 淄博网站制作定制推广西安百度关键词包年
  • 做任务挣钱的网站聚常州网站建设制作
  • 山东一建建设有限公司网站首页永久免费的电销外呼系统
  • 漳平网站建设sem是什么工作
  • 网站建设加盟创业百度竞价排名是什么方式
  • 专业婚纱摄影网站制作百度投放广告怎么收费
  • 如何给网站做提升网站网络营销公司
  • 网站做直播需要办理什么证软文推广什么意思
  • 腾讯企点聊天记录迁移厦门seo哪家强
  • 北京宏福建设有限公司网站营销活动有哪些
  • 有模板怎么做网站山东服务好的seo公司
  • 找段子的各大网站微商怎么引流被别人加
  • 产品列表型网站模板东莞seo外包平台
  • 鞍山市城乡建设委员会网站免费cms建站系统
  • WordPress根目录是什么南宁seo排名优化
  • 淘宝客网站还可以做吗做一个官网要多少钱
  • wordpress图像添加音频seo常规优化