Se sto caricando i miei script jQuery sotto tutta la mia pagina HTML, devo ancora aspettare che $(document).ready
sia in grado di usare jQuery per trovare elementi nella pagina?
risposta
non è necessario utilizzare la funzione ready
di jQuery, ma il proprio codice dovrebbe essere scritto con questo in mente. Eventuali click
o di altri gestori basati su BIND non possono allegare ai selettori in modo corretto, tuttavia, altri come live
e $.ajax
possono funzionare come previsto.
Prestare attenzione quando si utilizzano caricatori di script o AMD utilizzando questo approccio. jQuery deve essere disponibile e si deve bloccare durante il caricamento. Carica jQuery e altri deps in testa.
Un grande sguardo a questa tecnica che descrive che questo non è necessario l'utilizzo di jQuery per la funzione (non necessariamente circa l'uso in piè di pagina):
http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/
Perché "click" (o selettori) non funziona? –
(che puntano parla di utilizzo di script in una testa-posizione, ma non un FOOT-position.) –
Sarebbe lavorare per qualsiasi cosa disponibile nel DOM prima dell'esecuzione. Tutto ciò caricato in seguito, con qualsiasi mezzo, come AJAX o aggiunto in una successiva modifica documento non sarebbe stato raccolto da jQuery del 'click' – philwinkle
No non è necessario $(document).ready
per qualsiasi codice che interagisce con gli elementi DOM sulla pagina se gli script sono posizionati sotto questi elementi.
È buona norma metterli prima del tag di chiusura </body>
.
Il tag HTML ha solo due figli validi, testa e corpo, quindi probabilmente direi che è più che una buona pratica mettere i tag script all'interno del tag body di chiusura. I parser possono essere strani con HTML non valido – Hazza
No perché il documento sarebbe già stato caricato. Il Dom carica dall'alto verso il basso. Personalmente mi piace mettere tutte le mie js in fondo alla pagina invece che nella testa.
tuttavia è solo una riga di codice e suggerirei di utilizzarlo solo per sicurezza. puoi anche renderlo ancora più corto. $(function() {}
è lo stesso di $(document).ready(function(){})
Non capisco perché dovresti usarlo solo per essere sicuro; sembra che rallenterebbe inutilmente l'esecuzione. –
perché ci sarà sempre qualcuno con una configurazione del browser che fallirà se non vedrà ciò che vuole o si aspetta. l'esecuzione di '$ (function() {}' una volta non rallenta le cose abbastanza a sufficienza per te. guarda http://stackoverflow.com/questions/8160014/document-ready-check-slows-down-ie e leggi i commenti per la risposta accettata usando '$ (function() {}' richiederà in media circa 2-3ms. su una nota a margine se usi php puoi fare una funzione o una classe per inserire tutti i js in 1 file in 1 '$ (function() {}' oppure puoi farlo in js per esaminare i pattern di progettazione di programmazione. – Yamiko
- 1. Dove vengono caricati gli script dopo una chiamata ajax?
- 2. $ (documento) .ready() e inizializzazione jQuery alla fine della pagina
- 3. $ (documento) .ready nella pagina ascx dopo il callback di ajax
- 4. <script defer> e $ (documento) .ready
- 5. Quali sono gli effetti collaterali (se ce ne sono) di più $ (documento) .ready() in una pagina HTML?
- 6. Gli script vengono eliminati con jQuery .load
- 7. I dati non vengono caricati in WebView ma vengono caricati dopo il blocco - dispositivo di sblocco
- 8. Problema con qTip - Suggerimenti non visualizzati perché gli elementi vengono caricati dopo lo script
- 9. Jquery - Più di 1 "$ (documento) .ready" = codice dirty?
- 10. Gestione degli errori in jQuery (documento) .ready
- 11. Gli script non vengono chiamati
- 12. documento jquery pronto in script esterno
- 13. jQuery ready evento non attivato sul caricamento parziale della pagina
- 14. jQuery: Get .timeago() per lavorare su elementi caricati dopo DOM ready (Ajax)
- 15. Come si usa $ ('documento'). Ready (function()) in jQuery?
- 16. secondo $ (document) evento .ready jQuery
- 17. jQuery: Perché utilizzare document.ready se JS esterno nella parte inferiore della pagina?
- 18. Abbiamo ancora bisogno del codice di backup per le persone che hanno javascript disabilitato?
- 19. jQuery .live() e Document ready
- 20. forzare un blocco jQuery ready da eseguire dopo tutti gli altri blocchi pronti
- 21. modo corretto di ottenere diversi script in modo asincrono utilizzando jQuery con il post-documento-ready richiamata
- 22. jQuery documento pronto dopo richiesta Ajax
- 23. Eventi precedenti a $ (documento) .ready
- 24. Interazione tra jQuery .ready() e <script defer>
- 25. Dove mettere tutto il codice JavaScript jQuery?
- 26. Inizializzatore di rotaie che viene eseguito * dopo * percorsi * vengono caricati?
- 27. $ (documento) .ready equivalente in contenuto caricato in modo asincrono
- 28. Controllare se jQuery o mooTools sono caricati
- 29. Come riutilizzare il codice html in ogni pagina html?
- 30. jquery deve riassociare gli eventi nel postback parziale della pagina
"Tecnicamente", sì - "praticamente", no. Questo comportamento è stato costante (non definito) per i browser per anni. Tuttavia, credo che potrebbe esserci un po 'di magia con 'ready' e frame in IE ... lo script dovrebbe essere * dentro * il tag body. –
Inoltre, "piè di pagina" significa "
Alla fine del '
' –