用户在div外部点击时的JQuery事件?

Cli*_*ote 1 javascript jquery

每当用户点击div外部以隐藏该div时,是否可以调用任何事件?

我试过使用$(document).click(),但是即使用户点击了应该显示div的链接,也会调用一个.因此,单击处理程序事件显示div,并立即$(document).click()隐藏它,这意味着div永远不会显示.

想法?

kar*_*m79 6

您可以尝试将onclick事件处理程序委托给body元素(或其他合适的父容器),并测试target元素是否为reveal链接:

$("body").click(function(e) {
    if(e.target.id == "idOfLinkToShowDiv") {
        $("#idOfTheDiv").show();
    } else {
        $("#idOfTheDiv").hide();
    }
});
Run Code Online (Sandbox Code Playgroud)

以上内容可以缩短.toggle:

$("body").click(function(e) {
    $("#idOfTheDiv").toggle(e.target.id == "idOfLinkToShowDiv");
});
Run Code Online (Sandbox Code Playgroud)

其他方式:

$("body").click(function() {
    $("#idOfTheDiv").hide();
});

$(".showLink").click(function(e) {
    e.stopPropagation();
    $("#idOfTheDiv").show();
});
Run Code Online (Sandbox Code Playgroud)