$ versus jQuery

We schakelen op het werk over van MooTools naar jQuery. Ik heb een collega die me vertelde om nooit $als voorvoegsel te gebruiken bij het gebruik van een jQuery-methode (als ik hem goed heb begrepen). Hij zei dat de meest geschikte of veiligere manier (ik volgde hem niet echt) was om jQuery.te gebruiken.

Dus in plaats van $.plugin(), moet bijvoorbeeld jQuery.plugin()worden gebruikt.

Waarom zou dat het geval zijn? Welk onderscheid maakt hij met $/jQuery? Moet ik het dollarteken als accessoire vergeten? Alleen in bepaalde omstandigheden?


Antwoord 1, autoriteit 100%

Waarom zou dat het geval zijn? Is zijn $/jQuery-onderscheid correct?

Omdat bijna elke JavaScript-bibliotheek een functie definieert met de naam $. Als u veel bibliotheken in één document hebt, kunnen er conflicten optreden. Als je zeker weet dat jQuery het enige script is en altijd zal zijn dat die functie definieert, zou ik niets hebben tegen het gebruik van $.

jQuery definieert een mooie oplossing om conflicten op te lossen: jQuery.noConflict. Door deze functie te gebruiken kunt u uw eigen naam definiëren, waardoor jQuery toegankelijk zal zijn, bijvoorbeeld

var $jq = jQuery.noConflict(true);

Het aanroepen van deze functie zal resulteren in het herstellen van eerdere waarden voor $ en jQuery-variabelen wanneer deze bestonden voordat jQuery werd geïnitialiseerd. Ik kan me niet herinneren of andere bibliotheken naamconflicten proberen op te lossen.

Als je de hele tijd $ in plaats van jQuery wilt gebruiken, kun je je code in een apart privébereik uitvoeren dat de definitie van $ bevat door een zelfoproepende functie te gebruiken.

(function($){
   // your code goes here
   $("body").append("<p>Hello World!</p>");
})(jQuery); // or even jQuery.noConflict()

Antwoord 2, autoriteit 13%

$ is gealiast naar jQuery en zou in theorie een alias kunnen zijn naar iets anders in een andere opgenomen bibliotheek of script, wat tot verwarring of erger kan leiden. Als je alleen jQuery gebruikt, zou het gebruik van $ prima moeten zijn.


Antwoord 3, autoriteit 6%

Het is om conflicten te vermijden met andere bibliotheken zoals Prototype die dezelfde $ gebruiken.

Ik geef de voorkeur aan $, en het is geen probleem om het te gebruiken als je alleen JQuery gebruikt.


Antwoord 4, autoriteit 6%

Naast de andere antwoorden over conflicten met andere bibliotheken, moet een variabelenaam altijd de variabele beschrijven. jQueryis een veel meer beschrijvende naam voor een variabele dan $.

Other episodes