jquery函数setInterval

时间:2011-07-14 12:31:43

标签: jquery function setinterval

$(document).ready(function(){

    setInterval(swapImages(),1000);

    function swapImages(){

        var active = $('.active'); 
        var next = ($('.active').next().length > 0) ? $('.active').next() : $('#siteNewsHead img:first');

        active.removeClass('active');
        next.addClass('active');
    }
});

我有13个图像包含在div中。第一个有一个名为active的类,这意味着它被显示。

交换图像功能选择活动图像并将其隐藏,并使下一图像处于活动状态。

但是,当页面加载时,该函数只能正常工作一次,而不是循环。

有什么想法吗?

5 个答案:

答案 0 :(得分:26)

这是因为您正在执行不引用它的函数。你应该这样做:

  setInterval(swapImages,1000);

答案 1 :(得分:8)

请勿通过调用将swapImages的结果传递给setInterval。只需传递函数,如下所示:

setInterval(swapImages, 1000);

答案 2 :(得分:2)

//使用setInterval

概念的简单示例
$(document).ready(function(){
var g = $('.jumping');
function blink(){
  g.animate({ 'left':'50px' 
  }).animate({
     'left':'20px'
        },1000)
}
setInterval(blink,1500);
});

答案 3 :(得分:-1)

你可以像这样使用它:

$(document).ready(function(){

    setTimeout("swapImages()",1000);

    function swapImages(){

        var active = $('.active'); 
        var next = ($('.active').next().length > 0) ? $('.active').next() : $('#siteNewsHead img:first');

        active.removeClass('active');
        next.addClass('active');
        setTimeout("swapImages()",1000);
}

});

答案 4 :(得分:-1)

尝试在ready事件之外声明该函数。

    $(document).ready(function(){    
       setInterval(swapImages(),1000); 
    });


    function swapImages(){

    var active = $('.active'); 
    var next = ($('.active').next().length > 0) ? $('.active').next() :         $('#siteNewsHead img:first');
    active.removeClass('active');
    next.addClass('active');
}