javascript - 当用户在 div 外部单击时的 JQuery 事件?

标签 javascript jquery

是否有任何事件可以在用户单击 div 外部以隐藏该 div 时调用?

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

想法?

最佳答案

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

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

可以使用 .toggle 缩短以上内容:

$("body").click(function(e) {
    $("#idOfTheDiv").toggle(e.target.id == "idOfLinkToShowDiv");
});

另一种方式:

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

$(".showLink").click(function(e) {
    e.stopPropagation();
    $("#idOfTheDiv").show();
});

关于javascript - 当用户在 div 外部单击时的 JQuery 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683151/

相关文章:

javascript - 为点击事件返回 true 并继续

javascript - nodejs json.parse 保留科学记数法

javascript - 如何在石头剪刀布模拟中从onclick事件返回值?

javascript - 选择所有 HTML ID 作为 jQuery 对象

javascript - 在 jQuery 日期中将 0 添加到月份

c# - 发布到本地主机后,jquery 无法在 asp.net mvc 中工作

javascript - 可以使用 hammer.js 平移事件并仍然允许用户滚动吗?

javascript - CSS干净的动画重复

jquery - 填满半圆动画

javascript - 在函数javascript中访问另一个函数的超时变量