2013-02-28 162 views
0

我試圖動畫面板從頁面頂部進出。不幸的是,我的if語句不起作用。這裏是我的代碼:的Javascript布爾if語句不工作

var panelShown = false; 
$(document).ready(function(){ 
    $('#nav_arrow').click(function(){ 
     panelShown = true; 
     $('#nav_panel').animate({top: '0px'}, 1000, function(){}); 
     $('#nav_bar'); 
    }); 
    if(panelShown == true){//originally written as if(panelShown){ 
     $(document).click(function(){ 
      panelShown = false; 
      $('#nav_panel').animate({top: '-200px'}, 1000, function(){}); 
     }); 
    } 
}); 

第一部分工作正常,面板動畫下來。但我永遠無法進入if語句。任何幫助將不勝感激。

+1

媽的,我是個白癡。 if語句需要位於click監聽器中。 :/ – gaynorvader 2013-02-28 11:20:21

+0

單步執行代碼(即_debugging_)會使這一點立即變得明顯。 – 2013-02-28 11:21:16

+0

它看起來像StackOverflow的是現在的高科技版本[橡膠鴨子調試器(http://en.wikipedia.org/wiki/Rubber_duck_debugging);-) – strah 2013-02-28 11:29:05

回答

1

這真的從來沒有對子級可以因爲ready叫這將是false

試試這個:

var panelShown = false; 
$(document).ready(function(){ 
    $('#nav_arrow').click(function(){ 
     $('#nav_panel').animate({top: (panelShown ?'-200px' : '0px')}, 1000, function(){}); 
     panelShown = !panelShown; 
    }); 
}); 
+0

是的,只是意識到那裏,謝謝:) 9分鐘,直到我可以接受你的答案。 – gaynorvader 2013-02-28 11:20:41