function anim_loop(index) { $elements.eq(index).delay(3000).fadeIn(2000, function() { var $self = jQuery(this); setTimeout(function() { $self.fadeOut(3000); anim_loop((index + 1) % $elements.length); }, 4000); }); } anim_loop(0); });