【问题标题】:Click event without id or class set没有 id 或类集的点击事件
【发布时间】:2012-11-07 07:19:30
【问题描述】:

让我解释一下我确实需要什么。我有一个由 jquery 打开的导航。当我单击站点中的任何位置时,我想将其关闭。

我在这里找到了这个,但在这种情况下,每次点击都会关闭导航: jQuery click() event catch-all?

使用

$(document).click(function() {
  $("#boxID").hide();
});

但是当我在导航中单击时,例如id="boxnewsID",导航 id="navID" 本身也关闭了。我怎样才能防止这种情况发生?

当我尝试获取 id 或某事时。单击它只会返回文档(逻辑)。 我已经看到,facebook 的标题导航(消息、活动、朋友请求)按我需要的方式工作。

有什么想法吗?

【问题讨论】:

  • 请向我们展示您的代码、jquery 和 html
  • 您需要哪个代码?我有一个导航 ID,例如导航标识。我点击一个按钮作为新闻,例如盒子新闻ID。以及不起作用的点击功能。

标签: jquery


【解决方案1】:

我认为应该这样做:

$(document).on("click", ":not(#boxID)", function() {
    $("#boxID").hide();
}

编辑:

那也行不通。这是我的页面中的内容:

$(document).mousedown(function(e) {
    if ($(e.target).closest("#boxID").length == 0) {
        $("#boxID").hide();
    }
});

【讨论】:

    【解决方案2】:

    要排除一个或多个元素,您可以使用:

    $(document).not("#boxID").click(function() { $("#boxID").hide(); });
    

    这会从您的选择中排除 ID 为 #boxID 的元素。

    【讨论】:

    • no 在这种情况下不会不起作用,因为我在 $(document).click 时没有获得 id 这是我上面描述的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多