Von der jQuery API-Dokumentensite fürready
Alle drei folgenden Syntaxen sind gleichwertig:
- $ (Dokument) .ready (Handler)
- $ (). ready (Handler) (dies wird nicht empfohlen)
- $ (Handler)
Nach den Hausaufgaben - Lesen und Spielen mit dem Quellcode - habe ich keine Ahnung warum
$().ready(handler)
ist nicht zu empfehlen. Die erste und dritte Möglichkeit sind genau gleich. Die dritte Option ruft die Ready-Funktion für ein zwischengespeichertes jQuery-Objekt auf mit document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Die Ready-Funktion hat jedoch keine Interaktion mit dem Selektor der ausgewählten Knotenelemente. Der ready
Quellcode:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Wie Sie sehen können, wird der Rückruf nur zu einer internen Warteschlange ( readyList
) hinzugefügt und die Elemente in der Gruppe werden nicht geändert oder verwendet. Auf diese Weise können Sie die ready
Funktion für jedes jQuery-Objekt aufrufen .
Mögen:
- regulärer Selektor:
$('a').ready(handler)
DEMO - Nonsense- Selektor:
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Undefinierter Selektor:
$().ready(handler)
DEMO
Zum Schluss ... zu meiner Frage: Warum $().ready(handler)
wird das nicht empfohlen?
$.ready
zum Beispiel) eine statische Methode sein und nicht erst das Erstellen eines jQuery-Objekts erfordern.
.ready()
Funktionen für einzelne Elemente bereitzustellen , sollte es keinen Grund geben, ein jQuery-Objekt zu erstellen.
$.ready
wird bereits von einer internen jQuery-Funktion übernommen, suchen Sie den Quellcode nach ready:
.