2011-10-27 193 views

回答

7

綁定一個click事件HTML來捕捉任何點擊製作,並使其隱藏菜單

$("html").click(function() { 
    menu.find('.active').removeClass('active'); 
}); 

然後覆蓋上使用您的菜單的click事件.stopPropagation();

menu.find('ul li > a').bind('click', function (event) { 
    event.stopPropagation(); 

小提琴: http://jsfiddle.net/rKaPN/12/

+0

非常感謝,感謝幫助 –

+0

沒有一個很好的解決方案,因爲每個點擊這個每次都會做很多不必要的工作,該菜單已隱藏 –

0

打開菜單時,創建一個窗口寬度和高度相同的透明覆蓋格。點擊該div,關閉菜單並銷燬div。

1

可以添加這些了,所以用戶不必點擊

$("body:not(.menu)").hover(function(){ $(".menu").find('.active').removeClass('active');}) 
+0

不錯,我也喜歡這個很多,def defing this incase我需要它在路上 –

0

,而不是測試HTML DOM元素上每一次點擊,你可以綁定一個模糊事件時,你的菜單選項它在激活模糊事件時處於活動狀態,然後將其關閉。更換的這幾行:

//displaying the drop down menu 
    $(this).parent().parent().find('.active').removeClass('active'); 
    $(this).parent().addClass('active'); 

這些:當

//displaying the drop down menu 
    $('.active').removeClass('active'); 
    $(this).parent().addClass('active'); 
    $(this).blur(function() { 
     $('.active').removeClass('active'); 
    });