阻止默认事件和阻止冒泡的应用场景

Posted jacksplwxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阻止默认事件和阻止冒泡的应用场景相关的知识,希望对你有一定的参考价值。

阻止默认事件,比如这个:

<a href="https://www.baidu.com">
   <div>
         <span>取消</span>
   </div>
</a>

比如这样的一个需求 点击取消按钮的时候会触发一些js动作,但是不能让这个div产生跳转行为,所以需要在点击取消的时候 阻止冒泡,防止其跳转。

 

 


阻止冒泡,比如最简单的弹出层,当点击确认提交按钮的时候实际上点击事件是会往上冒泡,而一般我们取消遮罩的时候,都是通过点击弹出层周边的空白区域的。那么问题来了。

 
<div id="dialog">
   <span id="submit">确定</span>
</div>

$("#submit").on("click",function(e){
   e.stopPropagation();  //阻止冒泡,防止冒泡到document层
   ...
});

$(document).on("click",function(e){  
   if($(e.target).closest("#dialog").length == 0){
       $("#dialog").hide(); 
   }
})

1.阻止事件冒泡,但不阻止默认行为。如 stopPropagation 或 cancelBubble等。
2.阻止默认行为,但不阻止事件冒泡。如 preventDefault 方法。
3.同时阻止事件冒泡和默认行为。直接 return false 即可。

以上是关于阻止默认事件和阻止冒泡的应用场景的主要内容,如果未能解决你的问题,请参考以下文章

js阻止冒泡和默认事件(默认行为)详解

右键、阻止冒泡

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

vue--阻止冒泡、默认行为、键盘事件

vue阻止事件冒泡,事件穿透

阻止事件冒泡 和 阻止事件默认行为