2009-04-17 26 views
6

estoy usando algunos jQuery externo con $ (document) ready() para insertar anuncios después del evento listo documento ha disparado, algo así como:

$(document).ready(function() { 
    $('#leaderboard').html("<strong>ad code</strong>");  
}); 

Este es evitar que la IU sea bloqueada por la carga lenta de los anuncios. Hasta ahora ha estado funcionando bien.

Ahora necesito insertar más anuncios en nuestro sistema CMS, esto no puede ser parte del archivo JS externo, así que me pregunto si puedo usar un segundo evento listo para documentos e insertarlo usando una etiqueta de script en línea ? Si es así, ¿cuál será el orden de ejecución primero del evento preparado para documento JS externo o del script en línea?

Respuesta

10

Puede utilizar tantos métodos de evento como desee, jquery los une en una cola. La llamada de orden de método es la misma que la orden de definición: la última llamada se llama por última vez.

Una cosa útil también puede ser que usted puede cargar código html con script usando ajax y cuando el código se carga en DOM $(). Ready() también será llamado, para que pueda cargar anuncios dinámicamente.

3

Una ventaja adicional de la forma en jQuery es que puede tener múltiples listas() definiciones. Este es el caso con todos los eventos jQuery .

$ (document) .ready (function() { alerta ("Number One");});

$ (document) ready (function() { alert ("número dos");

9

Sí, la adición de múltiples $ (documentos) ready() s no es un problema de toda voluntad. ser ejecutado en el evento ready

Nota sin embargo, que el ejemplo de código es incorrecto $ (document) ready() toma una función y no una expresión por lo que debe darle de comer una función como esta:...

$(document).ready(function() { 
    $('#leaderboard').html("<strong>ad code</strong>");  
}); 

Esa función se ejecutará cuando El documento está listo.

+0

ooops sí, acabo de tomar un código para ilustrar y comprobar que lo que estaba haciendo realmente funcionaría :) – Tom

1

JQuery llama a las funciones de listo en el orden en que están definidas. Si desea cargar algunos datos primero y la ejecución de deleay use holdReady().

Cuestiones relacionadas