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

快速制作app软件优化网站目录结构

快速制作app软件,优化网站目录结构,wordpress建立文章页面,网站优化推广公司红宝书第二十三讲:详解DOM事件模型:冒泡与事件委托 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、事件冒泡:从“子”到“父”的传递过程 当点击一个元素时,事…

红宝书第二十三讲:详解DOM事件模型:冒泡与事件委托

资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲


一、事件冒泡:从“子”到“父”的传递过程

当点击一个元素时,事件会从最深层元素逐级向上传递到根节点,即 事件冒泡12
类比:石头扔进水里,波纹从中心扩散到外围。

在这里插入图片描述

代码验证:点击子元素触发父元素监听
<div id="parent">父元素<button id="child">子按钮</button>
</div><script>document.getElementById('parent').addEventListener('click', () => {console.log('父元素被触发了!'); // 点击按钮时会打印});
</script>

二、事件对象的关键属性

事件处理函数的参数 event 包含关键属性:

  • target → 实际触发事件的元素(如点击的按钮)3
  • currentTarget → 当前正在处理事件的元素(如父元素)1
  • stopPropagation() → 阻止事件继续冒泡1
parent.addEventListener('click', (e) => {console.log('实际触发者:', e.target.id); // 输出 'child'console.log('当前处理者:', e.currentTarget.id); // 输出 'parent'e.stopPropagation(); // 阻止冒泡到更高层
});

三、事件委托:用“父级代理”子级的事件

场景:列表中有多个子项需要点击处理。
传统方式 → 为每个子项绑定事件(性能差)2
事件委托 → 利用冒泡,只在父级绑定一个事件2

示例:点击任意列表项时打印内容
<ul id="list"><li data-action="go">去学习</li><li data-action="eat">去吃饭</li><li data-action="sleep">去睡觉</li>
</ul><script>document.getElementById('list').addEventListener('click', (e) => {const action = e.target.dataset.action;if (action) {console.log('执行操作:', action); // 点击任意li触发}});
</script>

优点:动态新增子项无需重新绑定事件,节省内存2


四、event.preventDefault() VS event.stopPropagation()
  • preventDefault()阻止默认行为(如点击链接不跳转)1
  • stopPropagation()阻止冒泡(父元素不再触发)1
document.querySelector('a').addEventListener('click', (e) => {e.preventDefault(); // 阻止跳转e.stopPropagation(); // 防止父元素的事件被触发
});

目录:总目录
上篇文章:红宝书第二十二讲:详解JavaScript类型化数组与二进制数据处理
下篇文章:红宝书第二十四讲:详解BOM对象:window、location、history

脚注


  1. 《JavaScript高级程序设计(第5版)》中的事件对象属性表解释了bubblesstopPropagation() ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》通过父元素代理处理多个子项事件示例说明事件委托 ↩︎ ↩︎ ↩︎ ↩︎

  3. 《JavaScript高级程序设计(第5版)》代码显示通过event.target区分事件源 ↩︎

http://www.dtcms.com/a/554842.html

相关文章:

  • 网站怎么做切换图片东莞城建局官网
  • ps做网站学到什么程度网络正常但网页打不开
  • 开发实战 - ego商城 -补充:使用uniapp扩展组件
  • 大型网站开发实例wordpress产品页路径在哪儿
  • 怎么查网站注册信息网富公司收费大概多少钱
  • 做设备推广的网站怎么建个人网页
  • 企业实训|AI技术在高阶自动驾驶的应用——某央企汽车集团
  • 购物网站功能模块说明哪个网站开发好
  • 淮北矿业 集团 工程建设有限责任公司网站应用网站制作
  • 关于谷歌seo快速排名优化方法有哪些是什么 【深圳谷歌seo】
  • 028.爬虫专用浏览器-抓取#shadowRoot(closed)下
  • html播放视频邢台网站优化建设
  • 10.31 MySQL数据记录操作
  • 企业营销型网站设计wordpress如何跳转页面代码
  • 核药:以放射性核素为 “探针” 与 “武器”,重塑疾病精准诊疗格局
  • 网站建设 有道翻译h5是什么网站上面做的
  • 网站建设工作整改报告ps做景观有哪些素材网站
  • 在 Window 上安装 Amazon Q Developer
  • 购物商城网页模板佛山seo整站优化
  • geoserver地址nginx代理后无法访问,会自动跳转到80端口
  • 布局智慧电力运维,抢占企业可持续发展先机
  • 网站建设推广哪家好公司注册记账代理公司
  • 网站常见的域名网站seo诊断报告
  • 如何精准驱动菜品识别模型--基于米尔瑞芯微RK3576边缘计算盒
  • 休闲文化网站网站建设佰首选金手指二五
  • 阿里云上做网站套模板怎么做微信小程序开发服务商
  • 读博的小故事(二)——科研工具
  • 网站内容被攻击该怎么做沈阳最新消息发布
  • 做网站还赚钱么电子商务企业
  • 供应链管理的三个阶段,你在哪一环?