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

时间:2016-07-12 04:41:48

标签: javascript jquery html css

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

点击时我试图让菜单按钮打开侧面板,但再次点击时应关闭它。我试过+ =和= +都没有工作。我对自己应该做的事情一无所知。它打印出来"第一个"每次我点击它,它都不会像它应该的那样去。

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

1 个答案:

答案 0 :(得分:1)

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