局部变量的声明

declaration of local variable

本文关键字:声明 局部变量      更新时间:2023-09-26

我正在使用以下javascript代码。。在所有函数启动之前,我已经声明了局部变量,但函数在被调用时不会执行。。但当我用函数中的所有变量的内容替换它们时,它才起作用。。。我可能做错了什么。。我的代码如下。。。

/* variables */
    var dmv = document.getElementById("dmv").style;
    var nomv = document.getElementById("nomv").style;
    var frsv = document.getElementById("frsv").style;
/* end of variables */
function messagesClick() {
    document.getElementById("notifications").style.visibility = 'visible';
    if (dmv.visibility == 'hidden') {
        dmv.visibility = 'visible';
        nomv.visibility = 'hidden';
        frsv.visibility = 'hidden';
    }else{
            dmv.visibility = 'hidden';
    }
}
function notificationsClick() {
    document.getElementById("notifications").style.visibility = 'visible';
    if (nomv.visibility == 'hidden') {
        nomv.visibility = 'visible';
        dmv.visibility = 'hidden';
        frsv.visibility = 'hidden';
    }else{
            nomv.visibility = 'hidden';
    }
}
function friendRequestClick() {
    document.getElementById("notifications").style.visibility = 'visible';
    if (frsv.visibility == 'hidden') {
        frsv.visibility = 'visible';
        dmv.visibility = 'hidden';
        nomv.visibility = 'hidden';
    }else{
            frsv.visibility = 'hidden';
    }
}

任何帮助都将不胜感激。。提前感谢..:)

您必须等到元素存在后才能访问它们。

您可以等到第一次需要这些值时再获取:

var dmv, nomv, frsv;
var gotStyles = false;
function getStyles() {
    if (!gotStyles) {
        gotStyles = true;
        dmv = document.getElementById("dmv").style;
        nomv = document.getElementById("nomv").style;
        frsv = document.getElementById("frsv").style;
    }
}
function messagesClick() {
    getStyles();
    document.getElementById("notifications").style.visibility = 'visible';
    if (dmv.visibility == 'hidden') {
        dmv.visibility = 'visible';
        nomv.visibility = 'hidden';
        frsv.visibility = 'hidden';
    }else{
            dmv.visibility = 'hidden';
    }
}
function notificationsClick() {
    getStyles();
    document.getElementById("notifications").style.visibility = 'visible';
    if (nomv.visibility == 'hidden') {
        nomv.visibility = 'visible';
        dmv.visibility = 'hidden';
        frsv.visibility = 'hidden';
    }else{
            nomv.visibility = 'hidden';
    }
}
function friendRequestClick() {
    getStyles();
    document.getElementById("notifications").style.visibility = 'visible';
    if (frsv.visibility == 'hidden') {
        frsv.visibility = 'visible';
        dmv.visibility = 'hidden';
        nomv.visibility = 'hidden';
    }else{
            frsv.visibility = 'hidden';
    }
}