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中实现暂停的几篇文章
Mar 04 Javascript
JavaScipt基本教程之前言
Jan 16 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
web基于浏览器的本地存储方法应用
Nov 27 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
jQuery使用ajax跨域获取数据的简单实例
May 18 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 Javascript
vue-router传参用法详解
Jan 19 Javascript
详解vue中移动端自适应方案
May 05 Javascript
js实现AI五子棋人机大战
May 28 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
Express的路由详解
2015/12/10 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
简单介绍Python中的RSS处理
2015/04/13 Python
小小聊天室Python代码实现
2016/08/17 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
python数据归一化及三种方法详解
2019/08/06 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
酒店销售经理岗位职责
2014/01/31 职场文书
交通事故调解协议书
2014/04/16 职场文书
幼儿园小班评语
2014/04/18 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
世界环境日活动总结
2015/02/11 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
导游词之长城八达岭
2019/09/24 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
Rust中的Struct使用示例详解
2022/08/14 Javascript