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之可拖动的iframe效果代码
Aug 01 Javascript
jquery调用wcf并展示出数据的方法
Jul 07 Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
AngularJS基础 ng-keydown 指令简单示例
Aug 02 Javascript
JavaScript原生数组Array常用方法
Apr 06 Javascript
Vue.js实现网格列表布局转换方法
Aug 25 Javascript
微信小程序 页面滑动事件的实例详解
Oct 12 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
微信小程序上传文件到阿里OSS教程
May 20 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
vue基于better-scroll仿京东分类列表
Jun 30 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中常见数据类型的汇总分享
2014/01/06 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
python单例模式实例解析
2018/08/28 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
学习和使用python的13个理由
2019/07/30 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
投标单位介绍信
2014/01/09 职场文书
保密普查工作实施方案
2014/02/25 职场文书
求职信结尾怎么写
2014/05/26 职场文书
小学亲子活动总结
2014/07/01 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
店面出租协议书范本
2014/11/28 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
MSSQL基本语法操作
2022/04/11 SQL Server