JavaScript实现事件的中断传播和行为阻止方法示例

发布时间 - 2026-01-10 22:39:32    点击率:

事件传播

MicroSoft的设计是当事件在元素上触发时,该事件将接着在该节点的父节点触发,以此类推,事件一直沿着DOM树向上传播,直到到达顶层对象document元素。这种自底向上的事件传播方式称为“事件冒泡”,也就是事件传播。

如何中断事件的传播?

stopPropagation() w3c取消冒泡

cancleBubble = true IE取消冒泡

取消事件默认效果:

returnValue = false IE 取消事件效果

defaultPrevent() w3c取消事件效果

<div id='aa'>
 <div id='bb'>
 <div id ='cc'></div>
 </div>
</div>
 #aa{
 width: 600px;
 height: 600px;
 background: gray;
}
#bb{
 width: 400px;
 height: 400px;
 background: green;
}
#cc{
 width: 200px;
 height: 200px;
 background: red;
}

捕捉写法停止传播 从最顶层开始往下

document.getElementById('aa').addEventListener('click',function (ev){alert('aa');ev.stopPropagation();},true);// 结果捕捉到aa 加true 由冒泡变为捕捉 从上到下
 document.getElementById('bb').addEventListener('click',function (){alert('bb')},true);
 document.getElementById('cc').addEventListener('click',function (){alert('cc')},true);

冒泡写法停止传播 从下往上

document.getElementById('aa').addEventListener('click',function (){alert('aa');});//加true 由冒泡变为捕捉 从上到下
 document.getElementById('bb').addEventListener('click',function (){alert('bb')});
 document.getElementById('cc').addEventListener('click',
 function (ev){
 alert('cc');
 ev.stopPropagation();
 // ev.cancleBubble = true;//IE下 取消冒泡方法
 }); //结果是冒出cc 停止传播
}

取消事件效果

returnValue = false //IE 取消事件效果

preventDefault() //w3c取消事件效果

document.getElementsByTagName('a')[0].onclick = function (ev){
 alert('点击');
 //达到事件结束的效果 但是函数还是往下运行
 //
 ev.preventDefault();
 alert('已经拦截');
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# javascript  # 中断  # 事件传播  # 阻止事件  # jquery取消事件冒泡的三种方法(推荐)  # js如何取消事件冒泡  # flex中event.preventDefault()方法取消事件的默认行为  # 关于捕获用户何时点击window.onbeforeunload的取消事件  # Javascript Event(事件)的传播与冒泡  # JavaScript中使用stopPropagation函数停止事件传播例子  # 阻止事件(取消浏览器对事件的默认行为并阻止其传播)  # JS传播事件、取消事件默认行为、阻止事件传播详解  # 往下  # 从上到下  # 以此类推  # 这篇文章  # 冒出  # 往上  # 捉到  # 结果是  # 有疑问  # class  # brush  # pre  # defaultPrevent  # false  # id  # aa  # gt  # xhtml  # lt  # div 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  如何快速生成可下载的建站源码工具?  Java类加载基本过程详细介绍  linux top下的 minerd 木马清除方法  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何续费美橙建站之星域名及服务?  Laravel如何升级到最新版本?(升级指南和步骤)  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  WEB开发之注册页面验证码倒计时代码的实现  如何在景安云服务器上绑定域名并配置虚拟主机?  如何在建站主机中优化服务器配置?  php json中文编码为null的解决办法  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何快速查询域名建站关键信息?  Python图片处理进阶教程_Pillow滤镜与图像增强  如何快速配置高效服务器建站软件?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何彻底卸载建站之星软件?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Python文本处理实践_日志清洗解析【指导】  如何快速搭建安全的FTP站点?  如何在阿里云香港服务器快速搭建网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel中的Facade(门面)到底是什么原理  如何构建满足综合性能需求的优质建站方案?  浅谈javascript alert和confirm的美化  高性能网站服务器配置指南:安全稳定与高效建站核心方案  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  js实现点击每个li节点,都弹出其文本值及修改  详解jQuery中的事件  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  php打包exe后无法访问网络共享_共享权限设置方法【教程】  如何快速生成高效建站系统源代码?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel如何创建自定义中间件?(Middleware代码示例)  如何在阿里云虚拟服务器快速搭建网站?  Android实现代码画虚线边框背景效果  JS中对数组元素进行增删改移的方法总结  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  教你用AI将一段旋律扩展成一首完整的曲子  javascript中闭包概念与用法深入理解  深入理解Android中的xmlns:tools属性  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言