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

目前主流网站开发所用软件建筑工程公司起名

目前主流网站开发所用软件,建筑工程公司起名,门户网站建设存在的问题和差距,最好的网站建设免费的如果神明还不帮你,说明他相信你。 目录 引言:捕获阶段:目标阶段:冒泡阶段:事件传播示意图:示例:代码:解读:输出: 引言: DOM 事件的处理通常分为三…

如果神明还不帮你,说明他相信你。

目录

  • 引言:
  • 捕获阶段:
  • 目标阶段:
  • 冒泡阶段:
  • 事件传播示意图:
  • 示例:
    • 代码:
    • 解读:
    • 输出:

引言:

DOM 事件的处理通常分为三个阶段:捕获阶段、目标阶段和冒泡阶段。这三个阶段描述了事件在 DOM 树中传播的顺序。

捕获阶段:

在捕获阶段,事件从 document 开始向下传播,逐层向下到达事件目标(即触发事件的元素)。在这个阶段,事件会经过所有的祖先元素,直到到达目标元素。

  • 顺序:document → html → body → 目标元素
  • 事件监听:可以在任何祖先元素上设置事件监听器,使用 { capture: true } 选项来监听捕获阶段的事件。

目标阶段:

在目标阶段,事件到达目标元素,事件处理程序在这个元素上被执行。此时,事件处理程序可以访问事件对象,获取有关事件的信息。

  • 顺序:目标元素
  • 事件监听:在目标元素上设置的事件监听器会在这个阶段被调用。

冒泡阶段:

在冒泡阶段,事件从目标元素开始向上冒泡,逐层返回到 document。在这个阶段,事件会经过所有的祖先元素,直到到达 document。

  • 顺序:目标元素 → body → html → document
  • 事件监听:可以在任何祖先元素上设置事件监听器,默认情况下,事件监听器会在冒泡阶段被调用。

事件传播示意图:

  • 捕获阶段:document -> html -> body -> target (目标元素)
  • 目标阶段:target (目标元素)
  • 冒泡阶段:target (目标元素) -> body -> html -> document

示例:

代码:

以下是一个简单的示例,展示了如何在捕获和冒泡阶段设置事件监听器:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Event Phases Example</title>
</head>
<body><div id="parent" style="padding: 20px; border: 1px solid black;">Parent<button id="child">Click Me</button></div><script>const parent = document.getElementById('parent');const child = document.getElementById('child');// 捕获阶段的事件监听器parent.addEventListener('click', () => {console.log('Parent (capturing)');}, { capture: true });// 目标阶段的事件监听器child.addEventListener('click', () => {console.log('Child (target)');});// 冒泡阶段的事件监听器parent.addEventListener('click', () => {console.log('Parent (bubbling)');});</script>
</body>
</html>

解读:

当用户点击 “Click Me” 按钮时,事件传播的过程如下:

  • 捕获阶段:事件从 document 开始向下传播,经过 parent 元素。捕获阶段的监听器被调用,输出:Parent (capturing)
  • 目标阶段:事件到达 child 元素(按钮)。目标阶段的监听器被调用,输出:Child (target)
  • 冒泡阶段:事件从 child 元素开始向上冒泡,经过 parent 元素。冒泡阶段的监听器被调用,输出:Parent (bubbling)

输出:

Parent (capturing)
Child (target)
Parent (bubbling)
http://www.dtcms.com/a/578145.html

相关文章:

  • 【stm32协议外设篇】- NEO-6M GPS 模块
  • 内网网站开发费用泰安网签查询2023
  • 微算法科技(NASDAQ MLGO)采用动态层次管理和位置聚类技术,修改pBFT算法以提高私有区块链网络运行效率
  • 潍坊网络建站模板wordpress 指定页面nofollow
  • 从Hive on YARN到Hive on Spark
  • 创作写作-李劭卓
  • 论文分享 |Spark-TTS:用解耦语音令牌实现高效可控的语音合成
  • Spark 文本分类实战经验总结
  • 英伟达体系内关于 DGX Spark 的讨论观点整理
  • 模版型网站a站为什么会凉
  • 强软弱虚四种引用
  • [Esterel大师课] Gérard Berry:使用Esterel v7进行同步多时钟电路设计(2013)
  • 有什么学做木工的网站吗WordPress添加下载弹窗
  • 目标检测模型SSD详解与实现
  • 网站弹窗广告代码企业官方网站的作用
  • 网站建设排行山西省确诊病例最新情况
  • 线程池浅谈
  • KubeSphere在线安装单节点K8S集群
  • 北京安慧桥网站建设口碑好的家装前十强
  • 著名建筑网站正规的教育机构有哪些
  • Linux - Vault
  • VSCode+Cline部署本地爬虫fetch-mcp实战
  • 使用python-pandas-openpyxl编写运营查询小工具
  • Label Studio 安装与简单使用指南
  • 宁波正规网站seo公司php网站开发机试题目
  • 牛客小白月赛122 D题x_to_y_2
  • 生态环境影响评价图件制作:融合ArcGIS与ENVI,掌握土地利用、植被覆盖、土壤侵蚀、水系提取等专题制图技术!
  • 深入理解 Vue3 Vapor 模式:从原理到实践
  • leeCode hot 100 !!!持续更新中
  • 想学网站建设选计算机应用技术还是计算机网络技术哪个专业啊网站建设工单系统护语