# 27: Egyszerű jQuery bővítmény létrehozása - CSS-trükkök

Anonim

Most, hogy megvizsgáltuk a jQuery bővítmények használatát, érdemes megérteni, hogyan kell ezeket felépíteni. Már röviden kitértünk arra, hogy ha akarja, kibővítheti a natív jQuery objektumot. Akárcsak:

$.myFunction = function() ( console.log("I am a function on the jQuery object."); ); // call it $.myFunction();

De ez önmagában nem különösebben hasznos. Egy új módszer létrehozásához a jQuery számára, amely meghívhat egy elemkészletet, ezt kell tennie:

$.fn.myMethod = function() ( // I'm a new method ));

Ez pontosan ugyanaz, mint a .prototype használata a jQuery-n, és a kíváncsiskodók számára erről itt olvashat bővebben. Ilyen módon azt jelenti, hogy képesek leszünk használni az új módszert egy elemcsoportra. Tetszik:

$("li").myMethod();

A módszer mellett bármit megtehet, de ahhoz, hogy egy jó jQuery pluginépítő állampolgár legyen, vissza kell küldenie ugyanazokat az elemeket a pluginból.

$.fn.myMethod = function() ( // Do some stuff return this; ));

Így a láncolással működni fog. Ha nem így tesz, és valaki megpróbálta a következőket:

$ („Li”). MyMethod (). Show ();

Ez kudarcot vallana, mert .show()lényegében semmire sem hívnák fel. A jQuery beépülő modulok gyakran úgy vannak kialakítva, hogy az egyes elemeket átgördítsék, így a készlet minden egyes eleméhez közvetlenül hozzáférhetsz, amire szükséged van.

Egy másik jó állampolgári tennivaló egy plugin beágyazása az azonnali meghívott funkciókifejezésbe, és a jQuery paraméterként átadás. Így biztonságosabb módon használhatja a plugin-kódban lévő $ -ot. Ennek oka, hogy bizonyos esetekben a $ gyorsírás a jQuery számára nem érhető el (pl. Egy felhasználó a kompatibilitási módban használta a jQuery-t).

Az utóbbi két dolog mindkét helyén a beépülő modul felépítése:

(function($) ( $.fn.myMethod = function() ( return this.each(function() ( // do things )); ); ))(jQuery)

A képernyőképernyőn végül egy egyszerű plugint készítettünk, amely nyílot ad hozzá bármely elem végéhez.

Lásd Chris Coyier (@chriscoyier) toll rwasH-ját a CodePen-en

Természetesen ez bonyolultabbá válhat, mivel az a törekvés, hogy többet tegyen, felmegy.