2012-01-10 56 views
4

我有一個JQuery導航,點擊父母<li>,使用JQuery滑動。再次單擊它將向上滑動導航。我遇到的問題是,如果客戶點擊屏幕上的其他地方,我的客戶也希望它滑回去,即只需單擊空白空間就可以摺疊導航。Jquery:Click slideUp問題

任何想法?

這裏是Jquery的:

$('#menu-flag-menu > li > a').click(function(e) {e.preventDefault();}); 


$("#menu-flag-menu li a").click(function(){ 

    // close all opened sub menus 
    $("ul", $(this).parent().siblings()).stop(true,true).slideUp(); 

    var ul = $(this).next("ul");  
    ul.stop(true,true).slideToggle('fast'); 
}); 

回答

3

這應該工作:

$(document).click(function (e) { 

    // if we click on anything other than the navigation menu 
    // or it's descendants then slide up the menu 
    if(e.target.id !== "menu-flag-menu" 
     && !$(e.target).closest("#menu-flag-menu").length) { 
     $(".sub-menu").stop().slideUp(); 
    } 
}); 
+0

嗨,這工作除了一旦它崩潰它完全隱藏導航。 – Guy 2012-01-10 14:36:19

+0

糟糕,忘了在UL中指定li。修正:)。 – karim79 2012-01-10 14:37:08

+0

這樣做不幸的是。如果我點擊屏幕上的任意位置,導航功能也會消失,無論導航是否打開。 – Guy 2012-01-10 14:43:00

0

我的建議是使用.mouseenter事件打開菜單和MouseLeave事件關閉菜單嘗試。