JQuery无限循环功能

时间:2011-03-24 16:00:32

标签: jquery

这是我编写的一个简单的JQuery代码。如何让它在结束后继续打勾。目前它在序列结束时停止。

$('#fader').children().hide();

$.fn.seqfx = function() {

    $(this).fadeIn(400);
    $(this).delay(4000);
    $(this).fadeOut(300, function() {
        $(this).next().seqfx();

}); 
 };

$(document).ready(function()
{
    $("#fader div:first").seqfx();
});

我尝试了if ($(this).is('div:last')) { $(this).first().seqfx(); }; else $(this).next().seqfx();

但它只是不断重复第一个元素。

有什么想法吗?

非凡

2 个答案:

答案 0 :(得分:5)

我认为更好的方法是选择触发器应旋转的所有元素,然后遍历所选元素:

(function($) {
    $.fn.seqfx = function() {
        var elements = this,
            l = elements.length,
            i = 0;

        function execute() {
            var current = $(elements[i]);
            i = (i + 1) % l;

            current
               .fadeIn(400)
               .delay(4000)
               .fadeOut(300, execute);
        }
        execute();
        return this;
    } ;
}(jQuery));

然后用

调用它
$("#fader div").seqfx();

这是DEMO

答案 1 :(得分:1)

试试这个:

$(document).ready(function()
{
    setInterval(function(){
      $("#fader div:first").seqfx();
    },4800);
});