在jQuery中每隔几秒执行一些执行?

时间:2014-09-27 15:08:28

标签: jquery

以下是我要替换的代码

$(document).ready(function() {
    var startSlider = function() {
        var startSlide = $(".slider li:first");
        var nextSlide = $(".active").next("li");
        $(".active").removeClass();
        $(".inactive").removeClass();
        if(nextSlide.html() == null) 
        {nextSlide = startSlide;}
        nextSlide.addClass("active");
        nextSlide.siblings().addClass("inactive");
        setTimeout(startSlider, 4000);
    };
    setTimeout(startSlider, 100);
});

我想删除startSlider函数并使用

setTimeout( function(){ 
var startSlide = $(".slider li:first");
        var nextSlide = $(".active").next("li");
        $(".active").removeClass();
        $(".inactive").removeClass();
        if(nextSlide.html() == null) 
        {nextSlide = startSlide;}
        nextSlide.addClass("active");
        nextSlide.siblings().addClass("inactive");
  }
 , 4000 );

但它没有任何建议吗?

1 个答案:

答案 0 :(得分:1)

使用您的第一个代码,因为它是递归函数。但是使用第二个代码,您需要使用setInterval而不是setTimeout函数,它将每4秒运行一次:

setInterval( function(){ // consider using setInterval instead of setTimeout
var startSlide = $(".slider li:first");
        var nextSlide = $(".active").next("li");
        $(".active").removeClass();
        $(".inactive").removeClass();
        if(nextSlide.html() == null) 
        {nextSlide = startSlide;}
        nextSlide.addClass("active");
        nextSlide.siblings().addClass("inactive");
  }
 , 4000 );