javascript preventDefault与stopPropagation

一、preventDefault

其阻止默认行为的发生而发生其他的事件,例如:阻止<a> onclick而触发的超链接

<a href="http://www.baidu.com" id="stopLink">百度</a>
<script type="text/javascript"> 
var test=document.getElementById("stopLink");
test.onclick= function(e){
   alert(this.href);
   stopDefault(e);
}
function stopDefault( e ) { 
if ( e && e.preventDefault )e.preventDefault(); 
   else 
   window.event.returnValue = false; 
    return false; 
} 
</script> 
-----------------------
结果:将不会自动跳转到百度首页,默认跳转事件被阻止执行

二、stopPropagation

子元素触发事件阻止事件冒泡引发父元素事件触发

<div id="parent" style="width:250px;background-color:yellow" onclick="alert(this.id)">
  <div id="son" style="width:200px;background-color:green" onclick="stopUp(this,event)">
   son
  </div>
</div>
<script type="text/javascript">
  function stopUp(obj,evt){
    alert(obj.id);
    var e=evt?evt:window.event;
    if(window.event){
     e.cancelBubble=true;
    }else{
     e.stopPropagation();
    }
 }
</script>
---------------------------
结果:点击son时parent click事件不会被触发,son阻止了冒泡传递

 

转载于:https://my.oschina.net/hcliu/blog/680078

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值