文档点击不在元素jQuery中

jac*_*per 15 html javascript jquery

使用jQuery如何检测不是特定元素的点击,并因此执行操作?

我有以下JavaScript

$('#master').click(function() {
    $('#slave').toggle();
});

$(document).not('#master','#slave').click(function() {
    $('#slave').hide();
});
Run Code Online (Sandbox Code Playgroud)

而且我无法从逻辑上看出我的错误.你可以在这里看到一个实例

Fré*_*idi 39

由于您绑定到click文档上的事件,因此可以使用event.target来获取启动事件的元素:

$(document).click(function(event) {
    if (!$(event.target).is("#master, #slave")) {
        $("#slave").hide();
    }
});
Run Code Online (Sandbox Code Playgroud)

编辑:正如Mattias在他的评论中正确地指出的那样,上面的代码将无法识别来自#master#slave(如果有的话)的后代的点击事件.在这种情况下,您可以使用nearest()来检查事件的目标:

$(document).click(function(event) {
    if (!$(event.target).closest("#master, #slave").length) {
        $("#slave").hide();
    }
});
Run Code Online (Sandbox Code Playgroud)