当我尝试存储一个变量时它不起作用?

When I try and store a variable it does not work?

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);
    });
});

我试图让菜单按钮在单击时打开侧面板,但再次单击时应该将其关闭。我试过 += 和 =+ 都不起作用。我不知道我应该做什么。每次我点击它时它都会打印出 "first 1" ,它永远不会像它应该的那样去其他地方。

//问题解决了我在函数内部声明了一个变量所以每次都是0。现在我将 cl 放在函数之外,它工作得很好,因为它现在可以存储一个变量并进行更改,而不是每次调用该变量时都设置为 0。

每次执行功能菜单时,cl 的值都会重置为 0。尝试使用全局变量,例如在 var menu = function(){ 之前声明 var cl = 0; 并在函数内部更改所有 var clcl。您也可以检查此 Fiddle 的逻辑。