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

物业网站模板下载学习网站开发心得

物业网站模板下载,学习网站开发心得,wordpress 手机界面,苏州首页排名关键词优化一、前言 在前端开发中#xff0c;事件冒泡#xff08;Event Bubbling#xff09; 是 DOM 事件传播机制中的一个重要特性。它允许一个子元素的事件“冒泡”到父元素甚至更上层的节点。虽然这种机制非常有用#xff0c;但在某些场景下我们并不希望事件继续向上传播。 例如…一、前言 在前端开发中事件冒泡Event Bubbling 是 DOM 事件传播机制中的一个重要特性。它允许一个子元素的事件“冒泡”到父元素甚至更上层的节点。虽然这种机制非常有用但在某些场景下我们并不希望事件继续向上传播。 例如 点击弹窗内容不希望触发遮罩关闭点击菜单项时不希望触发整个菜单栏的点击事件防止重复执行某些逻辑 本文将带你深入了解 什么是事件冒泡如何使用 event.stopPropagation() 和 event.stopImmediatePropagation()实际开发中的常见使用场景注意事项与最佳实践 通过这篇文章你将掌握如何在 JavaScript 中正确地阻止事件冒泡写出更加健壮和可维护的交互逻辑。 二、什么是事件冒泡 在 DOM 树中当一个事件发生在某个子元素上时该事件会从该元素开始逐级向上冒泡直到到达最顶层的 window 对象。这个过程被称为 事件冒泡Event Bubbling。 ✅ 示例说明 div idparent父容器button idchild点击我/button /divscript document.getElementById(parent).addEventListener(click, () {console.log(父元素被点击) })document.getElementById(child).addEventListener(click, () {console.log(子元素被点击) }) /script 输出结果 子元素被点击 父元素被点击 即使我们只点击了 button但事件也冒泡到了父级 div。 三、如何阻止事件冒泡 我们可以使用事件对象上的方法来阻止事件继续向上冒泡。 ✅ 方法一event.stopPropagation() 这是标准且推荐的方式用于阻止事件继续向上传播但不会阻止当前元素上的其他监听器执行。 document.getElementById(child).addEventListener(click, function(event) {console.log(子元素被点击)event.stopPropagation() }) 输出结果 子元素被点击 父元素不再收到点击事件。 ✅ 方法二event.stopImmediatePropagation() 如果你不仅想阻止事件冒泡还想阻止当前元素上其它监听器的执行可以使用这个方法。 const btn document.getElementById(child)btn.addEventListener(click, function (e) {console.log(第一个监听器)e.stopImmediatePropagation() })btn.addEventListener(click, function () {console.log(第二个监听器) // 不会执行 }) 输出结果 第一个监听器 四、stopPropagation() 与 stopImmediatePropagation() 的区别 特性stopPropagation()stopImmediatePropagation()是否阻止冒泡✅ 是✅ 是是否阻止当前元素的其他监听器❌ 否✅ 是推荐用途阻止事件传播到父级阻止所有后续处理 五、常见的应用场景 场景描述弹窗点击关闭点击遮罩关闭弹窗但点击内容区域不关闭菜单组件点击子菜单项不希望触发父菜单的 click 事件表格行操作点击某列按钮不希望整行都触发事件自定义表单控件阻止原生输入行为或提交逻辑多级嵌套组件控制不同层级之间的事件隔离防止误操作比如防止点击子元素多次触发同一功能 ✅ 示例弹窗点击遮罩关闭内容区域不关闭 div idmodal classmodaldiv idcontent classmodal-content这里是弹窗内容/div /divscript document.getElementById(modal).addEventListener(click, function(event) {console.log(遮罩被点击准备关闭弹窗)// this modalif (event.target this) {// 只有点击遮罩才关闭this.style.display none} })document.getElementById(content).addEventListener(click, function(event) {event.stopPropagation() // 阻止点击内容区域时触发遮罩关闭console.log(点击的是弹窗内容区域) }) /script 效果 点击遮罩 → 关闭弹窗点击内容区域 → 不关闭弹窗 六、注意事项与最佳实践 ⚠️ 不要滥用 stopPropagation 过度使用可能导致调试困难影响组件间的正常通信可能造成逻辑混乱 ✅ 使用建议 情况推荐方式阻止事件传到父级event.stopPropagation()阻止当前元素多个监听器event.stopImmediatePropagation()判断是否是目标元素使用 event.target event.currentTarget防止默认行为event.preventDefault()避免频繁绑定/解绑事件使用事件委托Event Delegation优化性能 七、总结对比表 方法是否阻止冒泡是否阻止当前元素其他监听器推荐程度event.stopPropagation()✅ 是❌ 否✅✅ 强烈推荐event.stopImmediatePropagation()✅ 是✅ 是✅ 推荐谨慎使用useCapture: true捕获阶段监听❌ 否❌ 否✅ 用于高级控制 八、结语 感谢您的阅读如果你有任何疑问或想要分享的经验请在评论区留言交流
http://www.hkea.cn/news/14537632/

相关文章:

  • 洛谷网站中小玉文具怎么做搭建小程序教程
  • 网站建设与网络设计课程如何提升网络营销推广
  • 公司网站的留言板怎么做游戏开发需要什么技术
  • 数据库能上传网站模板优化大师tv版
  • phpstorm网站开发做受免费网站
  • 开发应用程序的步骤seo优化设计
  • 给网站定位天津装修公司排名
  • 网站代码模板编写网站建设环境搭建心得体会
  • 网站开发实训设计报告wordpress dz论坛
  • 企业网站优化包括哪三个方面做网站卖东西赚钱吗
  • 外贸做平台好还是自己建网站好网页设计自我介绍模板代码
  • 威海外贸网站建设电话金蝶软件免费版下载
  • wordpress keywords插件seo关键词教程
  • 网站首页下拉广告一流的赣州网站建设
  • 云服务器和网站空间市场调研公司干什么的
  • 邵阳建设网站网站模板 双语
  • 网站策划制作公司 北京网站开发语言检测
  • 高性能网站建设指南在线阅读百度账号人工申诉
  • 南京做网站南京乐识专注湖南网站建设企业
  • 资源下载类网站如何做外链程序开发是什么专业
  • 阿里巴巴吧网站怎么做5118新媒体运营
  • 做正版电子书下载网站wordpress+没有+sql
  • 广东平台网站建设找哪家网站设计的任务
  • 商城微网站模板团购做的好的网站
  • wordpress iis网站seo视频狼雨seo教程
  • 学校网站建设的建议建网站需要了解哪些网站建设知识
  • 出口网站制作威海有名的做网站
  • 成都科技网站建设费电话卡免费申请
  • 哪个网站上做ppt比较好看的图片潍坊网站建设哪家好
  • 网站建设的五大原则wordpress用户登录注册插件