$('#start').click(function() {
$('.sabbl').each(function(index) {
$(this).delay(500 * (index+1)).queue(function() {
// whatever
});
});
});
Ich würde das mit einer Kette von setTimeouts lösen:
$('#start').click(animate);  
function animate () {  
   var $elems = $('.sabbl'),  
       i = 0,  
       l = $elems.length;  
   step();  
   function step () {  
      $elem = $elems.eq(i);  
      // Whatever  
      i++;  
      if (i < l) {  
         setTimeout(step, 500);  
      }  
   }  
}
(ungetestet)
Der Vorteil davon ist, dass der Payload den nächsten Schritt verzögert. Wenn ich mich richtig erinnere sorgt das für gleichförmigere Animationen. Animations-Frameworks wie Émile so. Somit ist auch ausgeschlossen, dass sich mehrere Step-Funktionen im Event-Loop aufstauen, wenn der step einmal länger als der Intervall braucht.
Wenn man unbedingt jQuerys Animation Queue verwenden will, kann man natürlich $elems.delay(500).queue(step) statt setTimeout schreiben.
Mathias
 nicht angemeldet
 nicht angemeldet Der Martin
 Der Martin