原生js阻止事件冒泡代码实例:
关于什么是事件冒泡这里就不多介绍了,可以参阅javascript事件冒泡简单介绍一章节,任何现象都是双刃剑,有时候利用事件冒泡能够带来便利性,但是有时候也会带来不便,下面就通过带来实例介绍一下如何阻止事件冒泡现象。
代码实例如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <script type="text/javascript"> window.onload=function() { var bt=document.getElementById("bt"); var main=document.getElementById("main"); bt.onclick=function(){alert("按钮事件触发了!");} main.onclick=function(){alert("div事件触发了!");} } </script> </head>[/size] [size=2]<body> <div id="main"> <input type="button" id="bt" value="查看效果"/> </div> </body> </html>
以上代码点击按钮会触发注册在它本身的事件,也通过会将事件传递给他的父元素,代码修改如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <script type="text/javascript"> function stopBubble(e) { if(e&&e.stopPropagation) { e.stopPropagation(); } else { window.event.cancelBubble=true; } } window.onload=function() { var bt=document.getElementById("bt"); var main=document.getElementById("main"); bt.onclick=function(ev) { var ev=ev||window.event; alert("按钮事件触发了!"); stopBubble(ev) } main.onclick=function(){alert("div事件触发了!");} } </script> </head>[/size] [size=2]<body> <div id="main"> <input type="button" id="bt" value="查看效果"/> </div> </body> </html>
以上代码可以阻止事件冒泡现象,代码比较简单这里就不多介绍了,可以参阅相关阅读。
相关阅读:
1.var ev=ev||window.event可以参阅var ev=window.event||ev的作用是什么一章节。
2.stopPropagation()函数可以参阅javascript的stopPropagation()方法一章节。
3.cancelBubble属性可以参阅javascript的cancelBubble事件属性一章节。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11719
更多内容可以参阅:http://www.softwhy.com/javascript/
时间: 2024-10-20 08:33:34