Page 91 - jQuery для начинающих
P. 91
Если мы хотим обрабатывать каждый элемент то соорудим следующую конструкцию
внутри нашего плагина:
// необходимо обработать каждый элемент в коллекции
return this.each(function(){
$(this).click(function(){
$(this).css('color', options.color);
});
});
// предыдущий вариант немного избыточен,
// т.к. внутри функции click и так есть перебор элементов
return this.click(function(){
$(this).css('color', options.color);
});
Опять же напомню, если ваш плагин не должен что-то возвращать по вашей
задумке — возвращайте this — цепочки вызовов в jQuery это часть магии, не
стоит её разрушать. Методы each() и click() возвращают объект jQuery.
Публичные методы
Так, у нас написан крутой плагин, надо бы ему еще докрутить функционала, пусть цвет
регулируется несколькими кнопками на сайте. Для этого нам понадобится некий метод
«color», который и будет в ответе за всё. Сейчас приведу пример кода готового плагина —
будем курить вместе:
// значение по умолчанию
var defaults = { color:'green' };
// наши публичные методы
var methods = {
// инициализация плагина
init: function(params) {
// актуальные настройки, будут индивидуальными при каждом запуске
var options = $.extend({}, defaults, params);
if (!this.data('mySimplePlugin')) {
// закинем настройки в реестр data
this.data('mySimplePlugin', options);
this.bind('click.mySimplePlugin', function(){
91
www.trk.kg