2016-07-12 58 views
0
var cl = 0; 
var menu = function(){ 

    if(cl === 0){ 
     $('.menu_nav').animate({left: '0px'}, 200); 

     $('body').animate({left: '285px'}, 200); 

     var cl = cl + 1; 
     console.log("First " + cl); 
    }else{ 
     $('.menu_nav').animate({left: '-285px'}, 200); 

     $('body').animate({left: '0px'}, 200); 

     var cl = cl - 1; 
     console.log("Second " + cl); 
    }; 
}; 

$(document).ready(function(){ 
    $('.menu-btn').on('click', function(){ 
     $(menu); 
    }); 
}); 

我想讓一個菜單按鈕在點擊時打開側面板,但再次單擊時應該關閉它。我試過+ =和= +都沒有工作。我對我應該做的事情無能爲力。每次點擊它時打印出「前1」,它永遠不會像它應該的那樣去其他地方。當我嘗試並存儲一個變量時,它不起作用?

//問題解決了我在函數內部聲明瞭一個變量,所以它每次都是0。現在我把cl放在函數的外面,它工作得很好,因爲它現在可以存儲一個變量,並且每次調用該變量時都會將其設置爲0。

+0

爲什麼不直接調用函數? – Li357

+0

@AndrewL。因爲每當我點擊菜單按鈕時就不得不在文檔準備就緒時發生。 –

+2

你設置一個變量爲'0',然後檢查它是否在下一行是'0',它怎麼可能不是'0'? –

回答

1

每一個功能菜單執行CL值時是使用全局變量,像var cl = 0;var menu = function(){前和你的功能改變所有var clcl內聲明覆位-ED爲0嘗試。您也可以檢查此Fiddle的邏輯。

相關問題