Was ist der Unterschied zwischen
$(function(){
});
und
$(document).ready(function() {
});
Was ist der Unterschied zwischen
$(function(){
});
und
$(document).ready(function() {
});
Antworten:
Diese Funktion verhält sich wie $ (document) .ready (), da sie zum Umschließen anderer $ () verwendet werden sollte.
Sie können dies im Quellcode sehen :
rootjQuery = jQuery(document);
...
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
$(function() {})Syntax empfohlen. Die anderen Syntaxen funktionieren weiterhin, sind jedoch veraltet. Siehe api.jquery.com/ready
} else if (jQuery.isFunction(selector)) {
return rootjQuery.ready(selector);
}
Aus der Quelle
Beim Aufrufen werden $(document).ready(selector)einige if-Anweisungen gespeichert.
Obwohl jQuery $(document)intern zwischenspeichert, kann dies zu einer $(f)Beschleunigung führen.
$(d).ready(f)vs$(f)
var d = document;oben setzen oder es hineinlegen (function(d) {und })(document);. : P
d = document, w = window
Beide sind gleichwertig, die erste ist eine Kurzform.
$ (function () {}) ist eine Abkürzung für den Dom Ready
Eine Funktion, die als Argument an den jQuery-Konstruktor übergeben wird, ist an das Dokument Ready-Ereignis gebunden.
Ich schlage vor, Sie lesen dies . Wie du siehst
Alle drei folgenden Syntaxen sind gleichwertig:
$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)
Es liegt also an Ihnen und an dem, was Sie bevorzugen.
$().ready()funktioniert nicht in jQuery 1.4+. $()Gibt unter diesen Umständen eine leere Auswahl anstelle des Dokuments zurück.
Die beiden sind genau gleichwertig: Verwenden Sie eine beliebige Form.
Das heißt, ich persönlich immer das erweiterte Formular $(document).ready(function(){});aus dem einfachen Grund , dass es ganz offensichtlich ist , was der Code tut. Die ungefähre Idee ist die des "selbstdokumentierenden Codes". Wer an den Code kommt später wird sofort sehen , dass der Code auf dem ausgeführt werden soll document‚s readyEreignis. Bei der Kurzform müssen Sie sich darauf verlassen, dass der Leser Ihres Codes die Bedeutung versteht.
Sie sind praktisch gleich. Kein Unterschied.
Dies ist der native Weg.
$(document).ready(function() {
// code
});
Und dies ist eine Abkürzung für die vorherige.
$(function() {
// code
});
TypeError: 'undefined' is not a functiongelegentlich zu Fehlern führen kann.
$(document), also meinst du wahrscheinlich die $Abkürzung für jQuery.
Wir sind auf Situationen gestoßen, in denen IE9 keine Funktionen innerhalb von $ (function () {}) ausführt. auf die gleiche Weise oder zum gleichen Zeitpunkt wie $ (document) .ready (function () {});
Das Problem hat sich speziell für uns durch das Lesen von Informationen aus einer Abfragezeichenfolge und das Verarbeiten und Anzeigen dieser Informationen auf dem Bildschirm oder für die Verarbeitung eines Formulars entwickelt. IE9 würde die Informationen verarbeiten, sobald sie mit $ (function () zwischengespeichert wurden und ein Benutzer die Seite aktualisiert hat. Beim ersten Start funktionierte jedoch nichts richtig. Sobald wir jedoch von $ (function () {}) zu $ ( document) .ready (), das Problem wurde behoben. Wir haben NICHTS anderes geändert.
Ich freue mich sehr auf den Tag, an dem ich nicht auf IE9 und niedriger testen muss.
Ich benutze, $(function() {});weil es kürzer ist. Soweit ich weiß, gibt es keinen Unterschied zwischen den beiden Methoden.