2008-12-02 18 views
5

estoy usando animación slideDown para mostrar algunos divs en una fila de la tabla que acaba de agregar:jQuery devolución de llamada de animación llamado antes de la animación termina

$("div", newRow).slideDown(10000, UpdateHours(response.d.Hours)); 

sin embargo los UpdateHours() la función se llama mucho antes de que los divs están acabados animación. Esto me está causando un problema porque las Horas Actualizadas se cubren con los divs deslizantes.

Hice la diapositiva muy lento para ilustrar mejor el problema.

Respuesta

34

Creo que está tratando de pasar el resultado de la llamada UpdateHours (response.d.Hours) como la función de devolución de llamada, lo que explicaría por qué se llama tan pronto. Una solución sería crear una función anónima que llame a UpdateHours.

$("div", newRow).slideDown(10000, function() { UpdateHours(response.d.Hours) }); 

Hay una demostración para llamar a slideDown de esta manera en el sitio de jQuery. http://docs.jquery.com/Effects/slideDown

+0

¡Genial! ¡Eso fue todo, gracias por eso! –

6

Creo que quieres esto:

$("div", newRow).slideDown(10000, function() { UpdateHours(response.d.Hours); });

Esto crea una función anónima que se llama como una devolución de llamada - lo que está haciendo es establecer la devolución de llamada a ser el valor de retorno de UpdateHours

Cuestiones relacionadas