jquery $(document) 和 $('body')的区别


<ul class="dropdown-menu animated fadeInRight b">

    <li><a class="text-center" href="">返回到旧版</a></li>

</ul>

$(function(){

    $('.a').click(function(event){
        $('.b').toggle();
    });
    此为第一部分.......
    $(document).click(function(){
            $(".b").hide();
        });
    此为第二部分.......
    $('body').click(function(){
            $(".b").hide();
        });
});

我想实现的效果是 点击 $('.show-message')之外的dom的时候 $('.b')隐藏,
点击$('.show-message')的时候$('.b')则toggle()
代码如上 为什么我执行第一部分代码的时候一切正常,执行第二部分代码的时候 $('.b')一直出不来 好像冒泡到$('show-message')上面了,

阅读 4k
2 个回答

你两个都是hide

新手上路,请多包涵

$('.a')的点击事件冒泡了,用stopPropagation()阻止一下就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题