2012-06-05 8 views
5

Me preguntaba si podría ejecutar estas funciones de una manera mejor, quiero decir que no me gusta la colección de funciones allí:¿Puedo ejecutar estas funciones anidadas de una mejor manera?

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); 

Respuesta

6

Además de SetTimeOut existe también la función que permite setInterval usted para ejecutar el código cada X milisegundos. Puede simplificar su código de la siguiente manera:

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

Gracias @PaoloBergantino, solía utilizar 'setInterval()' al ejecutar funciones en un ciclo infinito :) – Roland

Cuestiones relacionadas