jQuery:如果在其他地方检测到,则隐藏弹出窗口

前端之家收集整理的这篇文章主要介绍了jQuery:如果在其他地方检测到,则隐藏弹出窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图隐藏一个div,如果用户单击任何地方,但弹出或它的孩子。这是我到目前为止的代码
$("body").click(function(){
    var $target = $(event.target);
    if(!$target.is(".popup") || !$target.is(".popup").children()){
        $("body").find(".popup").fadeOut().removeClass('active');
    }
});

它适用于.popup div,但如果它的孩子被点击,它隐藏它。

解决方法

你真的可以简化这一点我想:
// If an event gets to the body
$("body").click(function(){
  $(".popup").fadeOut().removeClass("active");
});

// Prevent events from getting pass .popup
$(".popup").click(function(e){
  e.stopPropagation();
});

单击弹出窗口或其任何子项将导致传播在到达身体之前停止。

停止事件传播的演示:http://jsbin.com/ofeso3/edit

猜你在找的jQuery相关文章