2011-12-04 19 views
9

Eventuali duplicati:
javascript domready?In JQuery, come posso controllare se il DOM è pronto?

voglio verificare se $(function(){ }); è "pronto".

Ritorna vero se DOM è pronto, false altrimenti

+1

si può spiegare tutto ... – Yacov

+0

riformulare, per favore? Non capisco cosa vuoi. Il DOM è pronto subito prima del callback (nell'esempio, il comando 'function() {}'). – cHao

+0

Le persone (inclusi i documenti API di jQuery) chiamano la "funzione pronta per il documento". ;-) –

risposta

21

Da codice jQuery

 
if (jQuery.isReady) { 
    fn.call(document, jQuery); 
} 

+0

Esattamente quello che sto cercando !! – TIMEX

+2

Solo facendo un commento qui che questa non è una proprietà documentata e gli autori di jQuery potrebbero cambiare/rimuovere questa proprietà in qualsiasi momento senza preavviso. Utilizzare a proprio rischio e attenzione quando si aggiorna jQuery. –

2

Tale funzione verrà eseguito solo quando il DOM è pronto. Questo è il punto di avvolgere il tuo codice in quella funzione;). Detto questo, alcune cose (come immagini, script posticipati, ecc.) Potrebbero non essere ancora completamente caricate o renderizzate, quindi tenete presente.

1

È possibile utilizzare jQuery.isReady, ma è senza documenti e dovrebbe essere evitato.

Se avete solo bisogno di eseguire qualcosa dopo che il DOM è pronto, si può chiamare

$(document).ready(function() { 
    ... 
}); 

come normale - che verrà eseguito il codice immediatamente se il DOM è pronto e attendere che sia in caso contrario.

13

È possibile utilizzare la chiamata esplicita

$(document).ready(function(){ 
    // do this after dom is ready 
}); 

Oppure utilizzare la scorciatoia

$(function(){ 
    // do this after dom is ready 
}); 

E 'utile anche per avvolgere il vostro jQuery in una funzione anonima quando si sta utilizzando altre librerie; Molto comune anche usarlo quando si scrivono i plugin jQuery.

(function($, window){ 
    // use $ here freely if you think any other library might have overridden it outside. 
    $(function(){ 
    // do this after dom is ready 
    }); 
})(jQuery, window); 

Infine, è possibile utilizzare jQuery.isReady (bool)

if (jQuery.isReady) { 
    // do something 
} 
+0

Puoi anche fare 'jQuery (function ($) {/ * jQuery è alterato in $ all'interno di questo blocco anche se normalmente un'altra libreria è assegnata a $ * /});' – redbmk

Problemi correlati