设置后,全局变量未定义

时间:2015-05-19 19:45:55

标签: javascript

我正在尝试运行这段代码,但它说a变量是undefined,尽管你可以看到我已经非常清楚地定义了它,它必须是一个全局变量每次循环后都会改变

var a = 1;
var b = 2;

window.setInterval(function(){
    alert(a);
    if(a == 1){
        document.getElementById('pic2').style.opacity = '1';
        document.getElementById('pic1').style.opacity = '0';
        var b = 1;
        var a = 2;
    }
    if(a == 2){
        document.getElementById('pic2').style.opacity = '0';
        document.getElementById('pic1').style.opacity = '1';
        var b = 2;
        var a = 1;
    }
}, 2000);

1 个答案:

答案 0 :(得分:7)

这是因为您正在重新声明您的变量。从setInterval函数中删除变量可以解决此问题。

var a = 1;
var b = 2;

window.setInterval(function(){
    alert(a);
    if(a == 1){
        document.getElementById('pic2').style.opacity = '1';
        document.getElementById('pic1').style.opacity = '0';
        b = 1;
        a = 2;
    }
    if(a == 2){
        document.getElementById('pic2').style.opacity = '0';
        document.getElementById('pic1').style.opacity = '1';
        b = 2;
        a = 1;
    }
}, 2000);