这是我编写的一个简单的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();
但它只是不断重复第一个元素。
有什么想法吗?
非凡
答案 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);
});