2009-04-17 9 views
6

sto usando un po 'di jQuery esterna con $ (document) .ready() per inserire annunci dopo l'evento pronto documento è sparato, qualcosa come:

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

Questo è quello di impedire che l'interfaccia utente venga bloccata dal caricamento lento degli annunci. Finora ha funzionato bene.

Ora ho bisogno di inserire altri annunci sul nostro sistema CMS, questo non può essere parte del file JS esterno, quindi mi chiedo se posso usare un secondo evento pronto per il documento e inserirlo usando un tag script in linea ? In tal caso, quale sarà l'ordine di esecuzione prima dell'evento JS esterno o dello script in linea?

risposta

10

È possibile utilizzare tutti i metodi di evento che si desidera, jquery li unisce in una coda. L'ordine di chiamata del metodo è uguale all'ordine di definizione - l'ultimo aggiunto è l'ultimo chiamato.

Una cosa utile può essere, inoltre, che, è possibile caricare il codice HTML con script usando Ajax e quando il codice viene caricato in DOM $(). Ready() inoltre sarà chiamata, in modo da poter caricare gli annunci in modo dinamico.

3

Un ulteriore vantaggio del modo in jQuery è che si può avere più pronte() definizioni. Questo è il caso di tutti gli eventi jQuery .

$ (documento) .ready (funzione() { avviso ("Numero uno");});

$ (document) .ready (function() { alert ("Number Two");

9

Sì, l'aggiunta di più $ (documenti) .ready() s non è un problema ogni volontà. essere eseguito sull'evento pronto

Nota tuttavia che il codice di esempio è sbagliato $ (document) .ready() prende una funzione, non è un'espressione Così si dovrebbe nutrire una funzione come questa:...

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

Tale funzione verrà eseguita quando Il documento è pronto.

+0

ooops sì, ho appena afferrato del codice per illustrare per verificare quello che stavo facendo in realtà avrebbe funzionato :) – Tom

1

JQuery chiama le funzioni pronte nell'ordine in cui sono definite. Se si desidera caricare alcuni dati prima e delega l'esecuzione utilizzare holdReady().