2013-05-05 59 views
2

這可能是一個非常簡單但從未使用過這種類型的東西,所以不知道該怎麼做。jQuery切換隱藏點擊其他地方

我使用fadeToggle顯示隱藏DIV的

$('#account-toggle').click(  
function(){ 
    $('#account-toggle').toggleClass('account-active'); 
    $('.account-group').fadeToggle('fast'); 
}); 

這是工作的罰款。(顯然沒有什麼複雜的:P),現在我想的是,當用戶點擊屏幕上的其他地方將其隱藏。 ?

誰能幫我做到這一點...非常感謝

回答

5

試試這個:

$('#account-toggle').click(function(e){ 
    e.stopPropagation(); 
    $(this).toggleClass('account-active'); 
    $('.account-group').fadeToggle('fast'); 
}); 

$(document).click(function(){ 
    $('#account-toggle.account-active').removeClass('account-active'); 
    $('.account-group:visible').hide(); 
}); 
  • $(document).click事件被觸發每當用戶點擊頁面中的任何地方。
  • 可能發生用戶點擊account-toggle元素。由於事件冒泡,這將觸發事件#account-toggle & document事件。爲了阻止我們在這裏使用了e.stopPropagation()函數。
+2

+1另外代替**總是** removeClass並反覆隱藏您可以測試'.is(':visible')' – 2013-05-05 15:24:48

+0

太棒了!它工作完美,我想要的方式。你能解釋一下,瞭解它是如何工作的? – 2013-05-05 15:25:58

+0

@roXon:如何更新代碼?它會正常工作嗎? – 2013-05-05 15:26:50