javascript - JQuery Click 函数只运行最后一个 IF 语句

标签 javascript jquery if-statement onclick

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

我创建了一个名为 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);
    }); 

最佳答案

你有一个 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);
}); 

关于javascript - JQuery Click 函数只运行最后一个 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040659/

相关文章:

javascript - jQuery 视差/滚动事件性能

python - 递归函数计算某个序列出现的次数

c++ - 有没有更简单的方法从用户那里获取三个数字并按升序打印它们?

javascript - 重构 if 语句以消除冗余

javascript - Threejs数组索引错误: Index expression must be constant

javascript - 输入搜索在 Edge、IE 或 Firefox 中不起作用

php - jquery 显示特定元素然后在选择另一个元素时隐藏

javascript - 仅在 Dropbox 中存储文件时,Datastore 和核心 API 之间的区别?

jquery - .offset() 绝对位置错误?

javascript - 如何将相同的 JQuery 应用于两个导航并为每个导航添加不同的类