2013-02-28 112 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