JS冒泡事件的快速解决方法
2013-12-16 00:00
585 查看
何为冒泡事件
就是当设定了多个div的嵌套时;即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发了子div的onclick事件后,子div进行相应的js操作。但是父div的onclick事件同样会被触发。这就造成了事件的多层并发,导致了页面混乱。这就是冒泡事件。
消除冒泡事件的方法
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
下面的一段代码即可以很好的解释是么是冒泡效果,什么叫消除冒泡效果
把代码直接复制后,打开当点击child1时不仅会弹出 child1 对话框还会弹出 parent1
这就是冒泡事件
但是单击chile2只会弹出child2却不会弹出 parent2,这便是应用了阻止冒泡事件的特效的效果.
就是当设定了多个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,这便是应用了阻止冒泡事件的特效的效果.
相关文章推荐
- JS冒泡事件的快速解决方法
- js处理一个div里面多个点击事件时出现的事件冲突 重复的解决方法 事件冒泡
- js鼠标单击和双击事件冲突问题的快速解决方法
- js onmousewheel事件多次触发问题解决方法
- 兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法
- js onmousewheel事件多次触发问题解决方法
- JS阻止事件冒泡的3种方法之间的不同
- 解决js中鼠标事件冒泡问题
- 解决js中onMouseOut事件冒泡的问题
- JS中双击和单击事件冲突的解决方法
- js绑定事件this指向发生改变的问题解决方法
- js数字计算 误差问题的快速解决方法
- Js先触发失去焦点事件再执行点击事件解决方法
- js取消事件冒泡方法
- 解决TextBox中, JS方法(DatePicker)改变Text内容后, 无法触发OnTextChanged事件的问题
- JS阻止事件冒泡的3种方法之间的不同
- Android 中ListView的Item点击事件失效的快速解决方法
- js冒泡、捕获事件及阻止冒泡方法详细总结
- JS阻止冒泡事件以及默认事件发生的简单方法
- zepto.js中tap事件阻止冒泡的实现方法