开发者社区 问答 正文

javascript的stopPropagation()阻止冒泡什么时候使用?

javascript的stopPropagation()阻止冒泡什么时候使用?
也就是我怎么知道哪里要冒泡,哪里不冒泡,哪里需要阻止,哪里不需要阻止?

展开
收起
a123456678 2016-03-13 10:25:23 2334 分享 版权
1 条回答
写回答
取消 提交回答
  • 比如这个

    <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(); 
       }
    })

    不知道这样是否解释清楚

    2019-07-17 19:02:01
    赞同 展开评论