2011-07-21 19 views
8

Si tengo varias funciones $(document).ready(...), ¿se sobrescriben entre sí? Por el bien de la discusión, fingir que la codificación adecuada se tira por la puerta en este caso.

Supongo que tengo un $(document).ready(function() {...}); en el archivo de comandos de mi sitio. Luego uso un complemento de terceros que también usa $(document).ready(function() {...});. ¿Esto sobrescribirá mi función ya creada o jQuery "pone en cola" estas funciones para que se ejecuten cuando el documento esté listo?

+1

No, sólo tener esto en cuenta si se está utilizando mucho: http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/ – Paulpro

+0

@PaulPRO - Gran enlace. Nunca pensé en eso. – Spidy

+0

@Spidy: ¿aparecieron las preguntas sugeridas al crear esta pregunta? Ya hay un montón de estas preguntas. Es un duplicado directo de alrededor de otras 5 preguntas. –

Respuesta

16

No, no se anulan entre sí. Cada función se ejecuta.

Se podría, por supuesto, comprobar esto fácilmente a sí mismo: http://jsfiddle.net/6jgGt/

O entender desde el jQuery code sí:

línea 255 es la función de lista en el que el jQuery.bindReady(); se llama que entre otras cosas inicializa el objeto readyList en línea 429 con readyList = jQuery._Deferred();

y una vez que es un objeto de la función diferida aprobada en es anexado con readyList.done(fn); y te p n ver in the done method en la línea 41 que el elemento se agrega a una matriz con callbacks.push(elem); por lo que cada uno se guarda por separado ...

4

No, no se sobrescriben entre sí. Están en cola, como dijiste.

Cuestiones relacionadas