我的jquery程序出了什么问题?

我的这个jquery程序出了什么问题?
我调试的时候,程序一直在var i=0和if语句这两句之间交换,没有往下执行。

 function trun(){
    var i=0;
    if(i<5){
        $("#adv").css("background-image","url(img/dd_scroll_"+elem.eq(i).text()+".jpg)");
        i++;
    }else{
        i=0;
    }
    setInterval(trun(),500);
}

setInterval(trun(),500); 这个是每500ms执行一次,你放到里面,也就是每500ms 后i的值又会重置 i = 0;所以每次都会再程序一直在var i=0和if语句这两句之间交换。不会跳下去的

function trun(i){

if(i<5){
    $("#adv").css("background-image","url(img/dd_scroll_"+elem.eq(i).text()+".jpg)");
    i++;
}else{
    i=0;
}

}

var i=0;
setInterval(trun(i),500);

setInterval(trun(),500);你这句有毛病,只会执行一次trun,然后将返回值作为计时器执行的代码,而且你计时器不能放里面,要不会叠加


    var i = 0;//////////
    function trun() {
        console.log(i)
        if (i < 5) {
            $("#adv").css("background-image", "url(img/dd_scroll_" + elem.eq(i).text() + ".jpg)");
            i++;
        } else {
            i = 0;
        }
    }
    setInterval(trun/*()*/, 500);//////////

不能再turn()函数中进行setInterval()每次调用都会执行

楼上说的不错,!!!!!!!!!!!!

第一:你写的这个turn方法根本不会被触发,因为你把定时器写在了函数内部,没有事件触发它。
第二:函数内部逻辑也有问题,每次执行这个turn函数的时候,i都会被初始化。所以不会执行else后面的逻辑。
希望对LZ有所帮助。

对,把那个setInterval放到外面吧,放到页面加载事件啊什么都行