JS冒泡事件的快速解决方法
2023-06-13 09:15:14 时间
何为冒泡事件
就是当设定了多个div的嵌套时;即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发了子div的onclick事件后,子div进行相应的js操作。但是父div的onclick事件同样会被触发。这就造成了事件的多层并发,导致了页面混乱。这就是冒泡事件。
消除冒泡事件的方法
阻止JavaScript事件冒泡传递(cancelBubble、stopPropagation)
下面的一段代码即可以很好的解释是么是冒泡效果,什么叫消除冒泡效果
<html>
<head>
<title>阻止JavaScript事件冒泡传递(cancelBubble、stopPropagation)</title>
<metaname="keywords"content="JavaScript,事件冒泡,cancelBubble,stopPropagation"/>
<scripttype="text/javascript">
functiondoSomething(obj,evt){
alert(obj.id);
vare=(evt)?evt:window.event;//判断浏览器的类型,在基于ie内核的浏览器中的使用cancelBubble
if(window.event){
e.cancelBubble=true;
}else{
//e.preventDefault();//在基于firefox内核的浏览器中支持做法stopPropagation
e.stopPropagation();
}
}
</script>
</head>
<body>
<divid="parent1"onclick="alert(this.id)"style="width:250px;background-color:yellow">
<p>Thisisparent1div.</p>
<divid="child1"onclick="alert(this.id)"style="width:200px;background-color:orange">
<p>Thisischild1.</p>
</div>
<p>Thisisparent1div.</p>
</div>
<br/>
<divid="parent2"onclick="alert(this.id)"style="width:250px;background-color:cyan;">
<p>Thisisparent2div.</p>
<divid="child2"onclick="doSomething(this,event);"style="width:200px;background-color:lightblue;">
<p>Thisischild2.Willbubble.</p>
</div>
<p>Thisisparent2div.</p>
</div>
</body>
</html>
把代码直接复制后,打开当点击child1时不仅会弹出child1对话框还会弹出parent1
这就是冒泡事件
但是单击chile2只会弹出child2却不会弹出parent2,这便是应用了阻止冒泡事件的特效的效果.
相关文章
- js数组排序—自定义快速排序
- Tone.js基础使用
- Qml/js小知识
- 利用Cookie防止刷新的在线考试倒计时JS代码详解编程语言
- JS技术连接Oracle数据库实现数据交互(js连接oracle实例)
- 动态添加js事件实现代码
- js鼠标点击事件及其它捕获
- 为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
- JS的Event事件对象使用方法
- JavaScript高级程序设计阅读笔记(十八)js跨平台的事件
- JS事件Event元素(兼容IE,Firefox,Chorme)
- js给onclick事件赋值,动态传参数实例解说
- js/jquery去掉空格,回车,换行示例代码
- 兼容主流浏览器的iframe自适应高度js脚本
- js查找某元素中的所有图片地址的方法
- JS阻止冒泡事件以及默认事件发生的简单方法
- js监听滚动条滚动事件使得某个标签内容始终位于同一位置
- Chrome扩展页面动态绑定JS事件提示错误
- js触发onchange事件的方法说明
- js操作输入框提示信息且响应鼠标事件
- js冒泡、捕获事件及阻止冒泡方法详细总结
- js使用正则实现ReplaceAll全部替换的方法
- js判断手机和pc端选择不同执行事件的方法