JS冒泡事件的快速解决方法

前端技术 2023/09/01 JavaScript

何为冒泡事件
就是当设定了多个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,这便是应用了阻止冒泡事件的特效的效果.

本文地址:https://www.stayed.cn/item/2552

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。