Document is ready?

FrankWST

Erfahrenes Mitglied
Hallo,

es gibt in der jQuery-Lib die wunderbare Methode
Code:
$(document).ready()
-Function.

Nun habe ich aber JS-Funktionen die nicht gleich beim Laden der Seite, sondern durch Benutzer-Aktionen getriggert werden.
Innerhalb dieser würde ich dann gerne abfragen, ob das Doc komplett geladen und bearbeitbar ist. Das bekomme ich mit der "ready"-Methode ja nicht hin.

Die Frage ist also: Gibt es eine Art
Code:
IsDocumentReady()
-Methode?

Ansonsten gäbe es höchstens die Möglichkeit, in der "ready"-Methode erst die EventHandler an zu hängen. Aber das finde ich etwas umständlich...

Vielen Dank,
Frank
 
Ansonsten gäbe es höchstens die Möglichkeit, in der "ready"-Methode erst die EventHandler an zu hängen. Aber das finde ich etwas umständlich...

Du kannst keine EventHandler anhängen, bevor nicht das ondomready-Ereignis stattgefunden hat (Naja, kann man schon, wenn das JavaScript nach dem entsprechenden Element steht). Also stellt sich die Frage doch garnicht. Und ich verstehe nicht, was daran umständlich sein soll. Man packt einfach sämtliches JavaScript in die ready-Funktion.

Javascript:
//Hier vornedran braucht nichts zu stehen
$(document).ready(function() {
    //hier kommt ALLES rein
});
//Hier hintendran ebenfalls nichts
 
Zuletzt bearbeitet:
Ach so, Du meinst meine ganzen Funktionen in den Bereich
Code:
//hier kommt ALLES rein
!?

OK, aber ich habe die auf mehrere Quelldateien verteilt. Die kann ich doch nicht in diesem Bereich laden!? Oder doch?
 
1. Funktionen und Variablen lassen sich über mehrere script-Tags hinweg aufrufen und benutzen
2. Auf einer Seite dürfen beliebig viele Handler für das ready-Event verwendet werden

Falls das die Frage nicht klärt, musst du genauer erläutern was "auf mehrere Quelldateien verteilt" bedeutet.
 
Falls das die Frage nicht klärt, musst du genauer erläutern was "auf mehrere Quelldateien verteilt" bedeutet.

Als vereinfachtes Beispiel:

Ich habe eine "AB_Functions.js" mit folgendem Inhalt:
Code:
function A() {
  alert('Ich bin A');
}

function B() {
  alert('Ich bin B');
}

Und ich habe eine "XY_Functions.js" mit folgendem Inhalt:
Code:
function X() {
  alert('Ich bin X');
}

function Y() {
  alert('Ich bin Y');
}

Um diese in die "Ready"-Function zu packen, müsste ich die doch alle direkt dorthin schreiben.

Ich würde sie aber sehr gerne in ihren
mehrere Quelldateien
belassen.

Weisst Du was ich meine!?
 
Wenn diese externen Funktionen auf HTML-Elemente zugreifen, darfst du sie eben nur von einer Stelle aus aufrufen, an der du sicher weist, dass das DOM geladen ist.
Wenn es nur hilfsfunktionen sind, können sie auch außerhalb der ready-Funktion bleiben.
Falls du die Funktionen nur innerhalb der jeweiligen Dateien brauchst, kannst du auch innerhalb von AB_Functions.js und XY_Functions.js jweils die ready-Funktion nutzen.
 
...Aber das macht nur Sinn, wenn du nicht von außerhalb eine der beiden Aufrufen wolltest.

Und wenn doch?
Bleibt dann doch nur die Variante sie alle zusammen in den Bereich zu kopieren
Code:
$(document).ready(function() {
  // Alles hier rein, auch wenn es 100 functions sind.
  // Strukturierte Aufteilung in mehrere Quelldateien ist für Weicheier!
});
Also, so wirklich glücklich macht mich das nicht...
 
Du kannst sie doch auch einfach so stehen lassen und aus der ready-function aus aufrufen.

Javascript:
$(document).ready(function() {
    //Hier sind alle HTML-Elemente bereit und ich kann endlich meine tollen Funktionen aufrufe
    A();
    B();
    X();
    Y();
});

Wo ist jetzt eigentlich nochmal das Problem?
 
Zurück