JS冒泡事件的快速解决方法
何为冒泡事件
就是当设定了多个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阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
- javascript事件冒泡详解和捕获、阻止方法
- js冒泡、捕获事件及阻止冒泡方法详细总结
- js阻止冒泡及jquery阻止事件冒泡示例介绍
- zepto.js中tap事件阻止冒泡的实现方法
- js event事件的传递与冒泡处理
- JS阻止冒泡事件以及默认事件发生的简单方法
- js如何取消事件冒泡
- js事件监听机制(事件捕获)总结
- JavaScript 捕获窗口关闭事件
- Javascript 事件捕获的备忘(setCapture,captureEvents)
- JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
相关文章
深入理解JavaScript系列(28):设计模式之工厂模式详解
这篇文章主要介绍了深入理解JavaScript系列(28):设计模式之工厂模式详解,工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类,需要的朋友可以参考下2015-03-03微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
这篇文章主要介绍了微信小程序MUI侧滑导航菜单,结合实例形式分析了微信小程序Popup弹出式,左侧滑动,右侧不动菜单功能相关实现技巧与注意事项,需要的朋友可以参考下2019-01-01javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
先通过一个简单例子测试并发现我说的问题,让你有个直观的印象,再接着看我的解决办法。2010-01-01
最新评论