实现JavaScript阻止事件冒泡

快乐打工仔 分类:实例代码

JavaScript阻止事件冒泡属于前端实例代码,有关更多实例代码大家可以查看

事件冒泡可以参阅JavaScript事件冒泡一章节,

任何现象都可能是双刃剑,有时候利用事件冒泡能够带来便利性,但是有时候也会带来不便。

下面通过带来实例介绍一下如何阻止事件冒泡。

代码实例如下:

]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<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>
<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.pipipi.net/" />
<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>
<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()一章节。 

JavaScript阻止事件冒泡,这样的场景在实际项目中还是用的比较多的,关于JavaScript阻止事件冒泡就介绍到这了。

回复

我来回复
  • 暂无回复内容