我用setInterval时index变量为什么不变化,一直为0呢,折腾了一下下午

var index=0;
$(document).ready(function () {
    start();
    setInterval("getIndex()",1000)
});

function start(){
    var obj=$("#ad ul>li");    
    for(var i=0;i<obj.length;i++){
        $(obj[i]).css("opacity","0");
    }
}
function setIndexOpacity(){
    var item=$("#ad ul>li");
    if(index!=0){
        $(item[--index]).css("opacity","0");
    }
    $(item[index]).css("opacity","1");
}

function getIndex(){
    index=index>6?0:++index;
    setIndexOpacity();
}
蛊毒传说
浏览 744回答 1
1回答

Qyouu

对你代码的分析: 1)index初始为0 2)start方法执行,未对index值作更改 3)setInterval()调用致使getIndex方法被调用,经过处理index自增1,此时index为1 4)setIndexOpacity在getIndex中被调用,由于index不为0,所以index自减1,此时index为0(注意--index为自减,即index=index-1,++index同理) 5)继续setInterval()的循环 那么请问到底index的值变化了没?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript