原生js阻止事件冒泡代码实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js阻止事件冒泡代码实例相关的知识,希望对你有一定的参考价值。

原生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/

 

以上是关于原生js阻止事件冒泡代码实例的主要内容,如果未能解决你的问题,请参考以下文章

右键、阻止冒泡

vue.js阻止事件冒泡和默认事件

阻止事件冒泡和阻止后续代码执行

JS阻止事件冒泡与浏览器默认行为

js函数中 如何阻止事件冒泡

js阻止冒泡和默认事件(默认行为)详解