event.stopPropagation()与event.preventDefault()

Posted xixi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了event.stopPropagation()与event.preventDefault()相关的知识,希望对你有一定的参考价值。

<div id=‘div0‘>
  <div id=‘div1‘>
    <a href="#" id=‘div2‘>2222</a>
  </div>
</div>

window.onload=function(){
    var div0=document.getElementById(‘div0‘);
    var div1=document.getElementById(‘div1‘);
    var div2=document.getElementById(‘div2‘);
    div0.onclick=function(e){
        alert(‘00‘);
    }
    div1.onclick=function(e){
        alert(‘11‘);
    }
    div2.onclick=function(e){
        alert(‘22‘);
    }

}   // 点击22222后,以次弹出22,11,00(事件冒泡)

 

(1)event.preventDefault()表示阻止默认事件发生:如a标签的跳转事件

我们给a标签添加该事件,则a不再跳转。

 div0.onclick=function(e){
        alert(‘11‘);
        e.preventDefault();
  }

(2)event.stopPropagation() 表示阻止冒泡事件发生:冒泡指的是向上层冒泡,不影响他的子元素

例如:我们给div1 添加阻止冒泡事件,div2依然会触发,但是div0不会。

 div1.onclick=function(e){
        alert(‘11‘);
        e.stopPropagation();
  }
// 依次弹出 22, 11


        







以上是关于event.stopPropagation()与event.preventDefault()的主要内容,如果未能解决你的问题,请参考以下文章

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

event.stoppropagation的兼容

js 阻止冒泡 阻止默认事件

Material Design Slide Toggle 没有 event.StopPropagation,我应该用啥?

如何覆盖 event.stopPropagation(),preventDefault().stopImmediatePropagation()

Vue event.stopPropagation()和event.preventDefault()的使用