Ist die folgende Abkürzung für $(document).ready
?
(function($){
//some code
})(jQuery);
Ich sehe, dass dieses Muster häufig verwendet wird, aber ich kann keinen Hinweis darauf finden. Wenn es eine Abkürzung ist $(document).ready()
, gibt es einen bestimmten Grund, warum es möglicherweise nicht funktioniert? In meinen Tests scheint es immer vor dem fertigen Ereignis zu feuern.
javascript
jquery
document-ready
shorthand
Mark Brown
quelle
quelle
var somevar;
), ändert den Inhalt gleichnamiger Variablen außerhalb der Funktion nichtAntworten:
Die Abkürzung für
$(document).ready(handler)
ist$(handler)
(wohandler
ist eine Funktion). Siehe hier .Der Code in Ihrer Frage hat nichts damit zu tun
.ready()
. Es handelt sich vielmehr um einen sofort aufgerufenen Funktionsausdruck (IIFE) mit dem jQuery-Objekt als Argument. Der Zweck besteht darin, den Umfang mindestens der$
Variablen auf ihren eigenen Block zu beschränken, damit keine Konflikte verursacht werden. Normalerweise sehen Sie das Muster, das von jQuery-Plugins verwendet wird, um dies sicherzustellen$ == jQuery
.quelle
iife
oder springen Sie zum berühmten Blog-Beitrag von Cowboy Alman . Details ... meine Güte.Die Abkürzung lautet:
quelle
$
. Vielleicht möchten Sie das hinzufügen. Es ist nützlich fürjQuery(function($, undefined) {});
$(document).ready(function(){ });
$
als erstes Argument kostenlos erhalten.Die richtige Abkürzung lautet:
Der Code, den Sie gepostet haben…
… Erstellt eine anonyme Funktion und führt sie sofort aus,
jQuery
indem sie als Argument übergeben wird$
. Alles, was es effektiv tut, ist, den Code innerhalb der Funktion zu nehmen und ihn wie gewohnt auszuführen, da dies$
bereits ein Alias für istjQuery
. : D.quelle
Dies ist keine Abkürzung für
$(document).ready()
.Der von Ihnen veröffentlichte Code enthält den internen Code und stellt jQuery zur Verfügung,
$
ohne den globalen Namespace zu verschmutzen. Dies kann verwendet werden, wenn Sie sowohl Prototyp als auch jQuery auf einer Seite verwenden möchten.Hier dokumentiert: http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/#use-an-immedially-invoked-function-expression
quelle
Diese spezifischen Zeilen sind der übliche Wrapper für jQuery-Plugins:
"... um sicherzustellen, dass Ihr Plugin nicht mit anderen Bibliotheken kollidiert, die möglicherweise das Dollarzeichen verwenden, empfiehlt es sich, jQuery an eine selbstausführende Funktion (Closure) zu übergeben, die es dem Dollarzeichen zuordnet, damit es ' im Rahmen ihrer Ausführung von einer anderen Bibliothek überschrieben werden. "
Von http://docs.jquery.com/Plugins/Authoring
quelle
Die sichere Abkürzung für mehrere Frameworks ist:
Dies liegt daran, dass jQuery nicht das einzige Framework ist, das die Variablen
$
und verwendetundefined
quelle
(function($){ ... })(jQuery);
ready
sofort aufgerufenNoch kürzere Variante ist zu verwenden
wo
$
steht für jQuery und()=>{}
heißt so Pfeilfunktion , diethis
vom Abschluss erbt . (So dassthis
Sie wahrscheinlich inwindow
statt habendocument
.)quelle
Was ist damit?
quelle