全局变量不在javascript中更新

时间:2015-01-17 07:50:54

标签: javascript css global-variables

我在这里看过几篇关于如何更新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;
}

1 个答案:

答案 0 :(得分:1)

正如其他人所说,你并没有改变两种情况下 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 ,以便在不隐藏时,元素返回其默认或继承的样式,无论可能是什么。