阻止冒泡和取消默认事件(默认行为)

1.阻止冒泡 

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

       当Event 对象的 cancelable为false时,表示没有默认行为,这时即使有默认行为,调用preventDefault也是不会起作用

2.取消默认事件(默认行为)

//阻止浏览器的默认行为 
function stopDefault( e ) { 
    //阻止默认浏览器动作(W3C) 
    if ( e && e.preventDefault ) {
        e.preventDefault();         
    }else{
         window.event.returnValue = false; 
    }      
    return false; 
}

  w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false;

 

3.return false

jq 下:既阻止默认行为又停止冒泡  return false

js 原生: 阻止默认行为 不会停止冒泡

posted @ 2020-04-09 10:27  牧唐丫  阅读(289)  评论(0编辑  收藏  举报