通过多个函数循环/设置间隔?

时间:2011-09-10 10:07:50

标签: javascript jquery

问题是,我有4个功能,我想每隔5秒左右顺序运行一次,我不知道该怎么做呢

我知道代码效率低下。 (现在我已经设置了这种方式,因此也可以通过点击的按钮触发功能)

function tScroll1(){
    var $testimonialScrollPos = parseInt($tCont.css('top'), 10);
    if($testimonialScrollPos == -915){
        $tCont.css('top','305px');  
        $tCont.animate({top:'0px'},700);
        }
        else{
            $tCont.animate({top:'0px'},700);
            }
    };
function tScroll2(){
        $tCont.animate({top:'-305px'},700);
    };
function tScroll3(){
        $tCont.animate({top:'-610px'},700);
        };
function tScroll4(){
        $tCont.animate({top:'-915px'},700);
        };
$tBtns.eq(0).click(function(){tScroll1()});
$tBtns.eq(1).click(function(){tScroll2()});
$tBtns.eq(2).click(function(){tScroll3()});
$tBtns.eq(3).click(function(){tScroll4()});     

非常感谢任何帮助:]。

1 个答案:

答案 0 :(得分:15)

只需创建一个调用其他函数的函数:

window.setInterval(function(){
  tScroll1();
  tScroll2();
  tScroll3();
  tScroll4();
}, 5000);

如果您想以旋转顺序一次调用一个,请将它们放在一个数组中并保留一个数组索引:

var intervalFunctions = [ tScroll1, tScroll2, tScroll3, tScroll4 ];
var intervalIndex = 0;
window.setInterval(function(){
  intervalFunctions[intervalIndex++ % intervalFunctions.length]();
}, 5000);