Wir wechseln bei der Arbeit von MooTools zu jQuery. Ich habe einen Kollegen, der mir sagte, ich solle $
bei Verwendung einer jQuery-Methode niemals als Präfix verwenden (wenn ich ihn richtig verstanden habe). Er sagte, stattdessen sei der angemessenere oder sicherere Weg (ich bin ihm nicht wirklich gefolgt), ihn zu benutzen jQuery.
.
Anstatt also $.plugin()
, jQuery.plugin()
soll verwendet werden, zum Beispiel.
Warum sollte das so sein? Welchen Unterschied macht er mit $
/ jQuery
? Sollte ich das Dollarzeichen als mein Accessor vergessen? Nur unter bestimmten Umständen?
Antworten:
Weil fast jede JavaScript-Bibliothek eine Funktion namens $ definiert. Wenn Sie mehrere Bibliotheken in einem Dokument haben, können Konflikte auftreten. Wenn Sie sicher sind, dass jQuery das einzige Skript ist und immer sein wird, das diese Funktion definiert, hätte ich nichts gegen die Verwendung von $.
jQuery definiert eine gute Lösung zur Lösung von Konflikten: jQuery.noConflict . Mit dieser Funktion können Sie Ihren eigenen Namen definieren, wodurch auf jQuery zugegriffen werden kann, z
var $jq = jQuery.noConflict(true);
Wenn Sie diese Funktion aufrufen, werden die vorherigen Werte für $ - und jQuery-Variablen wiederhergestellt, sofern vorhanden, bevor Sie jQuery initialisieren. Ich erinnere mich nicht, ob andere Bibliotheken versuchen, Namenskonflikte zu lösen.
Wenn Sie $ anstelle von jQuery verwenden möchten, können Sie Ihren Code mithilfe einer selbstaufrufenden Funktion in einem separaten, privaten Bereich ausführen, der die Definition von $ enthält.
(function($){ // your code goes here $("body").append("<p>Hello World!</p>"); })(jQuery); // or even jQuery.noConflict()
quelle
noConflict
da der Umfang klar definiert ist.$ ist auf jquery ausgerichtet und könnte theoretisch auf etwas anderes in einer anderen enthaltenen Bibliothek oder einem anderen Skript ausgerichtet sein, was zu Verwirrung oder Schlimmerem führen kann. Wenn Sie nur jquery verwenden, sollte die Verwendung von $ in Ordnung sein.
quelle
Es soll Konflikte mit anderen Bibliotheken wie Prototype vermeiden, die das gleiche $ verwenden.
Ich bevorzuge das $, und es gibt kein Problem damit, wenn Sie nur Jquery verwenden.
quelle
Zusätzlich zu den anderen Antworten zu Konflikten mit anderen Bibliotheken sollte ein Variablenname immer die Variable beschreiben.
jQuery
ist ein viel aussagekräftigerer Name für eine Variable als$
.quelle