Page 92 - jQuery для начинающих
P. 92

$(this).css('color', options.color);
                                  });

                           }
                           return this;
                    },

                    // изменяем цвет в реестре
                    color: function(color) {
                           var options = $(this).data('mySimplePlugin');

                           options.color = color;
                           $(this).data('mySimplePlugin', options);
                    },

                    // сброс цвета элементов
                    reset: function() {

                           $(this).css('color', 'black');
                    }
             };

             $.fn.mySimplePlugin = function(method){
                    // немного магии
                    if ( methods[method] ) {

                           // если запрашиваемый метод существует, мы его вызываем
                           // все параметры, кроме имени метода прийдут в метод
                           // this так же перекочует в метод
                           return  methods[  method  ].apply(  this,  Array.prototype.slice.call(
                           arguments, 1 ));

                    } else if ( typeof method === 'object' || ! method ) {
                           // если первым параметром идет объект, либо совсем пусто
                           // выполняем метод init
                           return methods.init.apply( this, arguments );

                    } else {
                           // если ничего не получилось
                           $.error('Метод "' +  method + '" в плагине не найден');

                    }
             };


             Теперь еще небольшой пример использование данных методов:


                    // вызов без параметров - будет вызван init

                    $('p').mySimplePlugin();
                    // вызов метода color и передача цвета в качестве параметров

                                                                                                         92


                                                                                        www.trk.kg
   87   88   89   90   91   92   93   94   95   96   97