Si selecciona una clase o colección de elementos para animar con jQuery:
$('.myElems').animate({....});
Y luego también utiliza la función de devolución de llamada, que terminan con una muchas llamadas innecesarias animate()
.
var i=1;
$('.myElems').animate({width:'200px'}, 200, function(){
//do something else
$('#someOtherElem').animate({opacity:'1'}, 300, function(){
if (i>1) console.log('the '+i+'-th waste of resources just finished wasting your resources');
i++;
});
});
Podría decirse que esto es sólo un mal código y/o el diseño - Pero, ¿hay algo que pueda hacer que tanto evita tener muchos animate()
llamadas con sólo uno de ellos mediante la devolución de llamada, y que tiene una carga de devoluciones de llamadas innecesarias de ejecución y atornillar con mi código/comportamiento esperado?
Idealmente, solo podría codificar una única devolución de llamada 'desechable' que solo se ejecutará una vez; de lo contrario, tal vez haya una manera eficiente de comprobar si algo ya está siendo animado por jQuery.
Ejemplo: http://jsfiddle.net/uzSE6/ (advertencia: esto mostrará una carga de cuadros de alerta).
definen una variable de indicador en el alcance del archivo o en algún lugar accesible por 'animate()'. compruébalo antes de '$ (" # algunaOtraElema '). animate() 'llámalo y configúralo en su cuerpo para que' $ ("# algunaOtraElema'). animate()' no se invoque la próxima vez. – fardjad