# 27: Створення простого плагіна jQuery - CSS-хитрощі

Anonim

Тепер, коли ми розглянули використання плагінів jQuery, абсолютно варто зрозуміти, як їх будувати. Ми вже коротко торкнулися того факту, що ви можете розширити власний об'єкт jQuery, якщо хочете. Так як:

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

Але це не особливо корисно саме по собі. Для того, щоб створити новий метод для jQuery, який ви можете викликати для набору елементів, вам потрібно буде зробити це так:

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

Це точно те саме, що і використання .prototype на jQuery, і для допитливих ви можете прочитати більше про це тут. Роблячи це таким чином, ми зможемо використовувати цей новий метод для набору елементів. Подібно до:

$("li").myMethod();

Ви можете робити все, що завгодно, в цьому методі, але, щоб бути хорошим громадянином, який створює плагіни jQuery, вам слід повернути той самий набір елементів назад із плагіна.

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

Таким чином це буде працювати з ланцюжком. Якщо ви цього не зробите, і хтось спробував щось на зразок:

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

Це зазнало б невдачі, тому що .show()було б покликане по суті ні до чого. Часто плагіни jQuery призначені для циклу по кожному елементу, щоб у вас був прямий доступ до кожного окремого елемента в наборі, щоб робити так, як вам потрібно.

Ще одна річ, яку потрібно зробити, це обернути плагін у вираз функції з негайним викликом та передати jQuery як параметр до нього. Таким чином ви можете використовувати $ всередині коду плагіна більш безпечно. Це пояснюється тим, що в деяких ситуаціях стенограма $ для jQuery недоступна (наприклад, користувач використовував jQuery у “режимі сумісності”).

З обома останніми двома речами на місці структура плагіна стає:

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

У скрінкасті ми в підсумку створили простий плагін, щоб додати стрілку в кінець будь-якого елемента.

Дивіться Pen rwasH Кріса Койєра (@chriscoyier) на CodePen

Звичайно, це може ускладнитися, оскільки ваші амбіції зробити більше зростають.