2009-04-17 6 views
6

ich mit $ (document) .ready() einige externe jQuery bin mit Anzeigen nach dem Dokument bereit Ereignis eingefügt werden gefeuert hat, so etwas wie:

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

Diese soll verhindern, dass die UI durch das langsame Laden der Werbung blockiert wird. Bisher hat es gut funktioniert.

Jetzt muss ich noch mehr Anzeigen über unser CMS-System einfügen, dies kann nicht Teil der externen JS-Datei sein, also frage ich mich, ob ich ein zweites dokumentbereites Ereignis verwenden und es mit einem Inline-Skript-Tag einfügen kann ? Wenn ja, in welcher Reihenfolge wird das externe JS-Dokument als erstes Ereignis oder das Inline-Skript ausgeführt?

Antwort

10

Sie können beliebig viele Ereignismethoden verwenden, jquery verbindet sie in einer Warteschlange. Reihenfolge des Methodenaufrufs ist dieselbe wie Definitionsreihenfolge - zuletzt hinzugefügt wird zuletzt aufgerufen.

Eine nützliche Sache kann auch sein, dass Sie HTML-Code mit Skript mit Ajax laden können und wenn Code in DOM $() geladen wird. Ready() wird auch aufgerufen, so dass Sie Anzeigen dynamisch laden können.

3

Ein zusätzlicher Bonus von jQuery Weg ist , dass Sie mehrere bereit() Definitionen haben. Dies ist bei allen jQuery-Ereignissen der Fall.

$ (Dokument) .ready (function() { Warnung ("Nummer Eins");});

$ (document) .ready (function() { alert ("Nummer zwei");

9

Ja, das Hinzufügen mehrerer $ (Dokumente) .ready (n) ist kein Problem, alles wird. werden auf dem Ereignis ready ausgeführt

ist jedoch zu beachten, dass Ihr Codebeispiel ist falsch $ (document) .ready() eine Funktion übernimmt, nicht Ausdruck So sollte man es so eine Funktion füttern...

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

Diese Funktion wird ausgeführt, wenn th Das Dokument ist fertig.

+0

ooops yep, nur gepackt etwas Code zu veranschaulichen, um zu überprüfen, was ich tat, würde tatsächlich funktionieren :) – Tom

1

JQuery ruft die Ready-Funktionen in der Reihenfolge auf, in der sie definiert sind. Wenn Sie zuerst einige Daten laden und die Ausführung löschen möchten, verwenden Sie holdReady().