单击除div以外的任何位置以关闭菜单

时间:2018-09-12 13:45:43

标签: jquery

当用户单击菜单中的任意位置时,我正在尝试关闭菜单。

我从这个问题中尝试了几种方法,但这是最有效的方法:https://stackoverflow.com/a/12661833/609630

本质上是这样:

$(document).click(function(e){
    // Check if click was triggered on or within #menu_content
    if( $(e.target).closest("#menu_content, #menu-item-2003 a, #menu-item-2003 ul li a").length > 0 ) {
      return false;
    }
    $("#menu-item-2003 ul").slideUp( "slow", function() {
    // Animation complete.
    });
});

#menu_content是打开的div,而#menu-item-2003 a是单击以打开菜单的链接。 #menu-item-2003 ul li a是菜单内较深的链接。

#menu_content中发生了很多事情……使用上面的代码已经杀死了其中的链接(#menu-item-2003 ul li a),如何使它们重新起作用?除此之外,代码还可以工作。

1 个答案:

答案 0 :(得分:1)

我会反转if,以便您不必返回false:

$(document).click(function(e) {
  // Check if click was triggered on or within #menu_content
  if (!$(e.target).closest("#menu_content, #menu-item-2003 a, #menu-item-2003 ul li a").length) {

    $("#menu-item-2003 ul").slideUp("slow", function() {
      // Animation complete.
    });
  }
});