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 相关文章推荐
js异步加载的三种解决方案
Mar 04 Javascript
用js实现trim()的解决办法
Apr 16 Javascript
javascript中indexOf技术详解
May 07 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
纯原生js实现table表格的增删
Jan 05 Javascript
使用OPENLAYERS3实现点选的方法
Sep 24 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
react同构实践之实现自己的同构模板
Mar 13 Javascript
vue路由教程之静态路由
Sep 03 Javascript
javaScript实现一个队列的方法
Jul 14 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
php生成动态验证码gif图片
2015/10/19 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
React优化子组件render的使用
2019/05/12 Javascript
Python实现完整的事务操作示例
2017/06/20 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
介绍一下gcc特性
2015/10/31 面试题
应届生煤化工求职信
2013/10/21 职场文书
护理专科毕业推荐信
2013/11/10 职场文书
学校大课间活动方案
2014/01/30 职场文书
学风建设演讲稿
2014/09/12 职场文书
普通党员个人整改措施
2014/10/27 职场文书
护士辞职信怎么写
2015/02/27 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js