0

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

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

使用

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

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

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

任何的想法?

4

2 回答 2

0

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

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

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

于 2012-11-07T07:23:41.370 回答
0

我认为应该这样做:

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

编辑:

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

$(document).mousedown(function(e) {
    if ($(e.target).closest("#boxID").length == 0) {
        $("#boxID").hide();
    }
});
于 2012-11-07T07:46:51.610 回答