jquery文档正文一击事件

Man*_*uel 4 jquery events

有人可以帮我这个吗?:

我有一个按钮,当点击它显示一个特定的div.这个div有几个后代.现在,我想要的是当我点击文档中的其他位置时,但不会在任何后代中单击此div消失.我认为使用not选择器是这样的:

$("#button").click(function(){
    $("#mydiv").show();
    $(document.body).not($("#mydiv").children()).one('click',function(e) {
        $("#mydiv").hide(); 
    });
        return false;   
}); 
Run Code Online (Sandbox Code Playgroud)

但这不起作用!知道为什么吗?谢谢

Top*_*gio 15

如何检查点击事件以查看点击的内容?具体来看看event.target.

$(document).click(function(event) {
  var target = $(event.target);

  if (!target.attr('id').match(/^mydiv/) && target.parents('#mydiv').length == 0) {
    $('#mydiv').hide();
  }
});
Run Code Online (Sandbox Code Playgroud)

我之前使用过这段代码来关闭一个打开的窗口,当有人点击窗口以外的任何地方.


Joe*_*oel 5

使用最近的检查目标是否是后代mydiv.

$("#button").click(function(){
    $("#mydiv").show();
    $(document.body).click(function() {
        if ($(event.target).closest("#mydiv").length == 0)
            $("#mydiv").hide();     
    });
    return false;   
});
Run Code Online (Sandbox Code Playgroud)

您无法使用,one()因为如果您单击内部事件将被删除mydiv.如果要删除它,则必须执行一些自定义事件解除绑定.