首页 > Web开发 > 详细

js阻止元素的默认事件与冒泡事件

时间:2014-01-26 15:45:19      阅读:420      评论:0      收藏:0      [点我收藏+]

嵌套的div元素,如果父级和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,从而带来一定的影响。

1. event.preventDefault();  -- 阻止元素的默认事件。
注:a元素的点击跳转的默认事件 ,

  button,radio等表单元素的默认事件 ,

  div 元素没有默认事件

例:<a href="http://www.baidu.com" target="_black">百度《/a》

  var samp = document.getElementByTagName("a");

  samp.addEventListener("click",function(e){e.preventDefault()},false);

解释:点击链接的时候正常情况下会发生跳转,但是现在我们阻止了它的默认事件,即跳转事件,这时就不会跳转到百度了。


2. event.stopPropagation();  -- 阻止元素冒泡事件
注:嵌套元素一般都存在冒泡事件,会带来某些影响

例:<div id="c1" onclick="alert(1)">

    <div id="c2" onlick="alert(2)">

      <input type="button" id="c3" value="点击" onclick="alert(3)">

    </div>

  </div>

  这里点击button的时候,浏览器会先后弹出3,2,1,本来只想让绑定在button上的事件发生,却无意中触发了它的两个父级上的事件,这里我们只是做了一个简单测试,试想如果在项目开发中,某个按钮和他的父级同时绑定了很重要的事件,那么结果会惨不忍睹。这时的处理方法就是阻止冒泡事件。

  给input注册click事件,同时阻止它的冒泡事件

  document.getElementById(‘c3‘).addEventListener(‘click‘,function(e){e.stopPropagation()},false);

  OK!!!了

js阻止元素的默认事件与冒泡事件

原文:http://www.cnblogs.com/huntaheart/p/3533906.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!