2012-06-05 9 views
5

Zastanawiam się, czy mogę uruchomić tę funkcję w lepszy sposób, to znaczy, że nie podoba mi się zbiór funkcji tam:Czy mogę uruchomić lepiej zagnieżdżone funkcje?

setTimeout(function() { 
     $(self.header_buttons_classes[0]).addClass(self.animations[15]); 
     setTimeout(function() { 
      $(self.header_buttons_classes[1]).addClass(self.animations[15]); 
      setTimeout(function() { 
       $(self.header_buttons_classes[2]).addClass(self.animations[15]); 
       setTimeout(function() { 
        $(self.header_buttons_classes[3]).addClass(self.animations[15]); 
        setTimeout(function() { 
         $(self.header_buttons_classes[4]).addClass(self.animations[15]); 
         setTimeout(function() { 
          $(self.header_buttons_classes[5]).addClass(self.animations[15]); 
         }, 500); 
        }, 500); 
       }, 500); 
      }, 500); 
     }, 500); 
    }, 500); 

Odpowiedz

6

Oprócz setTimeout istnieje również funkcja, która pozwala setInterval uruchamiasz kod co X milisekund. Możesz uprościć swój kod w następujący sposób:

var i = 0; 
var total = self.header_buttons_classes.length; 
var x = setInterval(function() { 
    if(i == total) { 
     clearInterval(x); 
    } else { 
     $(self.header_buttons_classes[i]).addClass(self.animations[15]); 
     i++; 
    } 
}, 500); 
+0

Dzięki @PaoloBergantino, zwykle użyłem 'setInterval()' podczas uruchamiania funkcji w nieskończonej pętli :) – Roland

Powiązane problemy