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验证表单第二部分
Nov 25 Javascript
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
Dec 29 Javascript
JavaScript将字符串转换成字符编码列表的方法
Mar 19 Javascript
JavaScript DOM基础
Apr 13 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
javascript验证香港身份证的格式或真实性
Feb 07 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
校班主任推荐信范文
2013/12/03 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
angular异步验证器防抖实例详解
2022/03/31 Javascript