2011-07-06 43 views
2

中斷時打開我的切換功能有問題。我有一個簡單的div,當點擊使用.toggle時會上下移動。爲了讓頁面更容易使用,我希望用戶能夠點擊屏幕上的任何地方,以便'關閉'移動div,而無需再次點擊藍色框(有點像大型下拉菜單菜單)。jQuery .toggle需要雙擊才能打開,當被.click

問題是我的.click功能攪亂切換,一旦藍格由.click而非.toggle的第二功能關閉,.toggle則需要以被點擊兩次爲它再次打開。我究竟做錯了什麼?

我搜索過這裏,但在尋找類似的話題

我已經嘗試了一些.addClass.hasClass的東西,但它似乎並沒有工作沒有運氣.toggle其他相關問題,並雙擊。

而且,這裏是我的jQuery:

$(document).ready(function(){ 


$(document).click(function() { 
      if($("#banner").hasClass("open")){ 
        $("#banner").removeClass("open").stop().animate({top:"350px"},350, 'swing') 
      }}); 


$("#banner").toggle(
     function() { 
      $(this).addClass("open").animate({top:"200px"},350, 'swing') 
      }, 
     function() { 
      $(this).removeClass("open").animate({top:"350px"},350, 'swing') 
      }); 

}); 
+0

當提問,請儘量說明問題本身的問題。顯示問題的鏈接受以下兩個問題的影響:(1)一旦問題得到解決,他們通常不會再顯示問題;(2)他們經常死亡或過期。如果你可以在Snippet或Fiddle中顯示這個問題,那就更加永久':-)'。 – halfer

回答

1

爲什麼不只是改變toggleclick

$("#banner").click(function(e) { 
    e.stopPropagation(); 
    if ($("#banner").hasClass("open")) { 
     $("#banner").removeClass("open").animate({ 
      top: "350px" 
     }, 350, 'swing') 
    } 
    else { 
     $(this).addClass("open").animate({ 
      top: "200px" 
     }, 350, 'swing'); 
    } 
}); 
+0

嘿基,謝謝你的回覆。沒有想到這樣做。非常感謝。 –

相關問題