Was passiert, wenn Sie zwei jQuery $ (document) .ready Aufrufe in zwei JavaScript-Dateien haben, die auf derselben HTML-Seite verwendet werden?
Ich habe eine Frage zu jQuery $(document).ready
Sagen wir, wir haben eine HTML-Seite, die enthält 2 JavaScript Dateien
<script language="javascript" src="script1.js" ></script>
<script language="javascript" src="script2.js" ></script>
Sagen wir nun, dass in diesen beiden Skript-Dateien haben wir $(document)
wie folgt
Innen script1.js:
$(document).ready(function(){
globalVar = 1;
})
Innen script2.js:
$(document).ready(function(){
globalVar = 2;
})
Nun meine Fragen sind:
- Werden diese beiden ready-Ereignis-Funktion gefeuert ?
- Wenn ja, was wird die Reihenfolge, in der Sie gefeuert, da die
Dokument wird bereit sein, zur gleichen
Zeit für Sie?- Ist dieses Vorgehen empfehlenswert, ODER sollten wir im Idealfall nur 1
$(document).bereit ?- Ist die Reihenfolge der Ausführung derselben in allen Browsern (IE,FF,etc)?
Danke.
InformationsquelleAutor der Frage testndtv | 2011-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie werden beide gefeuert.
In der Art, wie Sie angezeigt werden (von oben nach unten), weil das ready event ausgelöst wird, sobald, und alle Ereignis-Listener wird benachrichtigt eine nach der anderen.
Ist es OK, es zu tun so. Wenn Sie haben, können Sie in den gleichen block von code, es wäre einfacher zu verwalten, aber das ist alles dort ist zu ihm. Update: Anscheinend habe ich vergessen zu erwähnen, erhöhen Sie die Größe der JavaScript-code, wenn Sie diese in mehrere Dateien.
Ja, weil jQuery nimmt die cross-browser-Normalisierung bei der hand.
InformationsquelleAutor der Antwort Shef
Siehe hier: jQuery - ist es schlecht, mehrere $(document).bereit(Funktion() {}); und hier: Tutorials:Mehrere $(document).ready()
readyList
mitLatenten
- Objekte..js
Datei und sicher sein, dass Sie liefert und bindet seine eigene ready-handler).InformationsquelleAutor der Antwort jensgram
Können Sie zählen auf beiden Handler wird ausgeführt, in der Reihenfolge Ihrer Skript-Integration und
globalVar
wird2
nach dem zweiten Skript-Referenz, die in einer beliebigen aktuellen browser.InformationsquelleAutor der Antwort Dave Ward
Wenn Sie wollen die volle Kontrolle empfehle ich nur eine $(document).ready();
Wenn Sie Last teilweise Teile von HTML durch ajax und die ajax-Antwort enthält ein $(document).ready (); von der Skript, und Sie möchten, um Feuer $(document).ready(); von script1.js, script2.js und so weiter in den ajax-callback.. Man muss doppelte MENGE code....
Glück!
/$(window).ready(); 😉
InformationsquelleAutor der Antwort Kevin Adolfsson
soweit gleichen event-Handler, nun, ganz ehrlich, ich sehe keinen Grund, das zu tun, und es wird nur die Lesbarkeit des Codes lousier.
InformationsquelleAutor der Antwort Itai Sagi