Schmuck: Frage zu jQuery.ready()

Wie ist das eigentlich mit jQuery.ready()?
Die Funktion ist ja laut dem was ich bei google gefunden habe mit onLoad vergleichbar.

Aber ich verstehe noch nicht so ganz, wie die Funktion gemeint ist.

Sollen alle jQuery-Funktionen dort hinein?
Oder muss jQuery.ready() für JEDE Funktion die eine jQuery-Funktion enthält neu erstellt werden?

Ich habe hier mal ein kleines Beispiel vorbereitet:

  
function test() {  
   $("a").html(alert("hallo, funktioniert!"));  
}  
  
jQuery.ready(function() {  
   /* Was soll hier rein? */  
}  

Wenn ich test() innerhalb von jQuery.ready() einbette, dann kann ich es aber nicht mehr von außen mittels onClick und anderen Events aufrufen.

  1. Moin!

    Wie ist das eigentlich mit jQuery.ready()?
    Die Funktion ist ja laut dem was ich bei google gefunden habe mit onLoad vergleichbar.

    Dieses Event wird aufgerufen, wenn das DOM im Browser fertig geladen ist. Das kann, je nach Browser, etwas früher als onload sein, was durchaus erwünscht ist, weil der User schon mit der Webseite interagieren kann, auch wenn z.B. noch Bilder fehlen.

    Aber ich verstehe noch nicht so ganz, wie die Funktion gemeint ist.

    Sollen alle jQuery-Funktionen dort hinein?

    Da muß alles rein, was etwas am DOM ändert, nachdem die Seite geladen ist.

    Logischerweise darf dementsprechend nichts hinein, was NICHTS am DOM ändert.

    Oder muss jQuery.ready() für JEDE Funktion die eine jQuery-Funktion enthält neu erstellt werden?

    Du kannst beliebig viele Funktionen für das ready-Event schreiben, wenn dir das vorteilhaft erscheint - die werden dann nacheinander abgearbeitet. Ein großer Block mit mehreren Aktionen ist aber vorteilhafter.

    Ich habe hier mal ein kleines Beispiel vorbereitet:

    function test() {
       $("a").html(alert("hallo, funktioniert!"));
    }

    jQuery.ready(function() {
       /* Was soll hier rein? */
    }

      
    Was in die ready()-Funktion rein soll, hängt davon ab, was du erreichen willst.  
      
    
    > Wenn ich test() innerhalb von jQuery.ready() einbette, dann kann ich es aber nicht mehr von außen mittels onClick und anderen Events aufrufen.  
      
    Mit jQuery definierst du keine onclick-Events mehr im HTML, sondern weist den HTML-Elementen erst in der ready-Funktion diese Events zu. Logischerweise müssen die durch die Events aufgerufenen Funktionen dann außerhalb der ready-Funktion notiert sein.  
      
     - Sven Rautenberg
    
    -- 
    "Love your nation - respect the others."