JQuery Click函数仅运行最后一个IF语句

时间:2015-10-09 14:20:05

标签: javascript jquery if-statement onclick

我编写了一个基本的jQuery函数,用于打开和关闭底部菜单(JSFiddle)。但是,它似乎只是在if函数中触发了最后一个click语句。

我创建了一个名为openNclose的变量,默认为false,因为菜单未打开。一旦打开,它应该更改为true并触发结束if声明,但这不起作用。

 $(menuContainer).click(function() {

        if (openNclose == true) {    
            $(menuContainer).css("height", "50px");
            $(menuOpen).css("bottom", "50px");
            openNclose = false;
        }

        if (openNclose == false) {
            $(menuContainer).css("height", "200px"); 
            $(menuOpen).css("bottom", "200px");
            openNclose = true;
        }

        console.log(openNclose);
    }); 

1 个答案:

答案 0 :(得分:3)

您有一个if语句,您可以在其中设置openNclose = false,然后使用另一个if语句进行操作,并检查是否openNclose == false。这意味着您的代码将满足两个if语句。

将其更改为else if,甚至只更改为else

$(menuContainer).click(function() {

    if (openNclose == true) {    
        $(menuContainer).css("height", "50px");
        $(menuOpen).css("bottom", "50px");
        openNclose = false;      // setting openNclose to false here
    } else {                     // this will only be hit if openNclose == false
        $(menuContainer).css("height", "200px"); 
        $(menuOpen).css("bottom", "200px");
        openNclose = true;
    }

    console.log(openNclose);
});