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

时间: 2024-10-20 08:33:34

原生js阻止事件冒泡代码实例的相关文章

jQuery阻止事件冒泡代码实例

jQuery阻止事件冒泡代码实例:本章节分享一段代码实例,此代码能够实现组织时间冒泡的功能,希望能够对大家有借鉴作用.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落&l

js阻止浏览器、元素的默认事件与js阻止事件冒泡、阻止事件流

嵌套的div元素,如果父级和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,下面介绍一下js阻止默认事件与js阻止事件冒泡示例,大家参考使用吧 1. event.preventDefault();  -- 阻止元素的默认事件.注:a元素的点击跳转的默认事件 , button,radio等表单元素的默认事件 , div 元素没有默认事件 例: 复制代码代码如下: <a href="http://www.baidu.com" target="_bl

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

首先我们来看原生JS取消事件冒泡方法: e.stopPropagation(); //非IE浏览器window.event.cancelBubble = true; //IE浏览器 原生JS阻止默认事件方法: e.preventDefault(); //非IE浏览器window.event.returnValue = false; //IE浏览器 而vue.js给我们提供了更简便的方法,我们可以通过function($event)来获取事件对象,$event.target则是选择发生事件的目标元

js阻止事件冒泡stopPropagation()、cancelBubble、preventDefault()、return false的分析

事件冒泡,举个列子: <li> <a href='http://www.baidu.com'>点击a</a> </li> <script> $('li').click(function () { alert('点击了li'); }); $('a').click(function () { alert('点击了a'); }); </script> 当你点击a的时候,会先弹出‘点击了a’,再弹出‘点击了li’,最后跳转到百度.简单理解就是

js阻止事件冒泡的两种方法

一.冒泡事件简介 当我们点击一个控件的时候,如果包括这个控件的父控件也有click事件,则会继续执行. 方法一:event.stopPropagation( ); 例如: <div>     <p>段落文本内容         <input type="button" value="点击" />     </p> </div> html代码: // 为所有div元素绑定click事件 $("div

js阻止默认事件与js阻止事件冒泡

e.stopPropagation(); //阻止事件冒泡 功能:停止事件冒泡 function stopBubble(e) { // 如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) { // 因此它支持W3C的stopPropagation()方法 e.stopPropagation(); } else { // 否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble = true; } }

js阻止事件冒泡和标签默认行为

<a href="/Scripts/newfiber_js_lib/images/1.jpg" ><div onclick="historyImg(this, event)" class="txt_more">更多</div></a> function historyImg(dom,e) { stopBubble(e); stopDefault(e); } //阻止事件冒泡函数 function s

js阻止事件冒泡 return false / e.stopPropagation() /e.preventDefault()

由于每个元素在文档里面触发时都会冒泡 如果每个层上都有alert事件,那么触发里层div时,alert 里层,外层,最外层. 为了防止事件之间干扰,需要阻止事件冒泡. 一般使用e.stopPropagation(); ie8及其以下不支持,需要使用e.cancelBubble=false: 另外e是用来获得window的全局对象.e可以使用任意其他字母或者单词代替,比如a,b,c,d....,event,obj等等. 每当触发一个事件,系统都会给这个事件传一个对象,从而获得全局对象. 比如通过e

js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false

preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了.什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等.当Event对象的cancelable为false时,表示没有默认行为,这时即使有默认行为,调用 preventDefault也是不会起作用的. 我们都知道,链接&