javascript 后全局变量未更新

Global variable not updating in javascript

我在这里看到了几篇关于如何更新 Javascript 全局变量的帖子。我正在尝试将其用作切换开关,以便当该函数再次运行时,它会执行与刚刚执行的操作相反的操作(或者,无论我将其设置为做什么。)

它不起作用,我很沮丧,因为我也没有从开发者控制台收到任何错误。

var display_menu_toggle = false;
function display_menu() {
        if (display_menu_toggle == true) {
        document.getElementById('barometer').style.display = "none";
        document.getElementById('finance').style.display = "none";
        return false;
    }
    document.getElementById('barometer').style.display = "block";
    document.getElementById('finance').style.display = "block";
    display_menu_toggle = true;
    return true;
}

正如其他人所说,您不会针对这两种情况更改 display_menu_toggle 的值。考虑:

var display_menu_toggle = false;

function display_menu() {
    document.getElementById('barometer').style.display = display_menu_toggle? "none" : '';
    document.getElementById('finance').style.display = display_menu_toggle? "none" : '';
    display_menu_toggle = !display_menu_toggle;
}

通常最好在 none 和 ''(空字符串)之间切换 style.display,这样未隐藏时,元素 returns 为其默认或继承的样式,无论可能是什么。