简体   繁体   English

全局变量未在JavaScript中更新

[英]Global variable not updating in javascript

I've seen several posts on here about how to update a Javascript global variable. 我在这里看到了几篇有关如何更新Javascript全局变量的文章。 I'm trying to use it as a toggle, so that when the function runs again it does the opposite of what it just did (or, that is, whatever I've set it to do. ) 我试图将其用作切换,以便当该函数再次运行时,它的作用与它所做的相反(或者,即我设置它所做的任何事情。)

It's not working, and I'm frusturated because I'm getting no errors from the developer console, either. 它不起作用,我也感到沮丧,因为我也没有从开发者控制台中得到任何错误。

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

As others have said, you aren't changing the value of display_menu_toggle for both conditions. 正如其他人所说,您不会同时更改这两种情况的display_menu_toggle的值。 Consider: 考虑:

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

It's usually best to toggle style.display between none and '' (empty string) so that when not hidden, the element returns to its default or inherited style, whatever that might be. 通常最好在none和''(空字符串)之间切换style.display ,以便在不隐藏时,该元素返回其默认或继承的样式(无论是哪种样式)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM