JS冒泡事件的快速解决方法


Posted in Javascript onDecember 16, 2013

何为冒泡事件
就是当设定了多个div的嵌套时;即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发了子div的onclick事件后,子div进行相应的js操作。但是父div的onclick事件同样会被触发。这就造成了事件的多层并发,导致了页面混乱。这就是冒泡事件。

消除冒泡事件的方法
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)

下面的一段代码即可以很好的解释是么是冒泡效果,什么叫消除冒泡效果

<html> 
<head> 
<title> 阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)</title> 
<meta name="keywords" content="JavaScript,事件冒泡,cancelBubble,stopPropagation" /> 
<script type="text/javascript"> 
function doSomething (obj,evt) { 
alert(obj.id); 
var e=(evt)?evt:window.event; //判断浏览器的类型,在基于ie内核的浏览器中的使用cancelBubble
if (window.event) { 
e.cancelBubble=true; 
} else { 
//e.preventDefault(); //在基于firefox内核的浏览器中支持做法stopPropagation
e.stopPropagation(); 
} 
} 
</script> 
</head> 
<body> 
<div id="parent1" onclick="alert(this.id)" style="width:250px;background-color:yellow"> 
<p>This is parent1 div.</p> 
<div id="child1" onclick="alert(this.id)" style="width:200px;background-color:orange"> 
<p>This is child1.</p> 
</div> 
<p>This is parent1 div.</p> 
</div> 
<br /> 
<div id="parent2" onclick="alert(this.id)" style="width:250px;background-color:cyan;"> 
<p>This is parent2 div.</p> 
<div id="child2" onclick="doSomething(this,event);" style="width:200px;background-color:lightblue;"> 
<p>This is child2. Will bubble.</p> 
</div> 
<p>This is parent2 div.</p> 
</div> 
</body> 
</html>

把代码直接复制后,打开当点击child1时不仅会弹出 child1 对话框还会弹出 parent1

这就是冒泡事件

但是单击chile2只会弹出child2却不会弹出 parent2,这便是应用了阻止冒泡事件的特效的效果.

Javascript 相关文章推荐
JavaScript作用域链使用介绍
Aug 29 Javascript
关闭ie窗口清除Session的解决方法
Jan 10 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
再探JavaScript作用域
Sep 24 Javascript
javascript实现平滑无缝滚动
Aug 09 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
学习Node.js模块机制
Oct 17 Javascript
vue动态改变背景图片demo分享
Sep 13 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
Javascript Symbol原理及使用方法解析
Oct 22 Javascript
JS批量操作CSS属性详细解析
Dec 16 #Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 #Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 #Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
Dec 14 #Javascript
js获取url中指定参数值的示例代码
Dec 14 #Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 #Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
Dec 14 #Javascript
You might like
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
动态控制Table的js代码
2007/03/07 Javascript
jQuery 注意事项 与原因分析
2009/04/24 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
JS作用域链详解
2017/06/26 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Django视图和URL配置详解
2018/01/31 Python
Python requests库用法实例详解
2018/08/14 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
计算机专业推荐信范文
2013/11/27 职场文书
高中军训感言500字
2014/02/24 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
业务内勤岗位职责
2015/04/13 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers