当用户单击菜单中的任意位置时,我正在尝试关闭菜单。
我从这个问题中尝试了几种方法,但这是最有效的方法: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
),如何使它们重新起作用?除此之外,代码还可以工作。
答案 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.
});
}
});