2013-01-31 63 views
-4

這段代碼有什麼問題我錯過了什麼? :(我認爲這個問題是在if和else ..JavaScript「if」和「else」錯誤

$(function() { 
    if ($("a#toggle_sidebar").length > 0) { 
     $('#toggle_sidebar').click(function() { 
      $('#dw_right').show(); 
      $('#content-container div#container').css('width', '83%'); 
     }); 
    } else { 
     $('#toggle_sidebar').click(function() { 
      $('#dw_right').hide(); 
      $('#content-container div#container').css('width', '100%'); 
     }); 
    } 
}); 
+5

你應該告訴我們究竟是不是爲你工作 –

+3

我們需要知道:?1)什麼實際你的問題」重新看到是2)一個簡短的,自包含的,完整的例子,再現問題,3)你期望的輸出是什麼。 (提示:您應該也包括HTML) –

+1

我投票重新打開它,因爲我有一個真正的想法發佈爲答案。我絕對同意太快關閉它。當仍然希望用戶能夠回覆評論並解決問題時,保持一個問題是沒有問題的。 – poke

回答

2

的問題是,顯示或隱藏的單擊事件只會一次處理,而不是相反。如果你的if/else中添加單擊處理程序,那麼你可以很容易地切換元件準備的文件將只運行一次

$(function() { 
    if ($("a#toggle_sidebar").length > 0) { 
     $('#toggle_sidebar').click(function() { 
      if(!$(this).is(':visible')) 
      { 
       $('#dw_right').show(); 
       $('#content-container div#container').css('width', '83%'); 
      } 
      else 
      { 
       $('#dw_right').hide(); 
       $('#content-container div#container').css('width', '100%'); 
      } 
     }); 
    } 
}); 
+1

儘管我宣佈了我的答案,但你實際上比我快。所以採取這個+1;) – poke

+0

非常感謝你:) –