码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-02-02 19:49:34      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

原生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阻止事件冒泡代码实例

标签:

原文地址:http://www.cnblogs.com/come-on/p/5178362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!