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

Пишем свой виджет


             Отправной  точкой  при  написания  виджета  для  jQuery  UI  для  вас  будет  официальная
             документация, но поскольку со знанием английского не у всех сложилось, то я постараюсь
             перевести и адаптировать информацию изложенную в ней.


             Первое, о чём стоит рассказать, это то, что правила написания плагинов для jQuery слишком
             вальяжны, что не способствует их качеству. При создании jQuery UI, походу, решили пойти
             путём  стандартизации  процесса  написания  плагинов  и  виджетов,  я  не  могу  сказать
             насколько задумка удалась, но стало явно лучше чем было. Начну с описания каркаса для

             вашего виджета:


                    $.widget("book.expose", {
                           // настройки по умолчанию
                           options: {

                                  color: "red"
                           },

                           // инициализация widget
                           // вносим изменения в DOM и вешаем обработчики
                           _create: function() {
                                  this.element;   // искомый объект в jQuery обёртке

                                  this.name;      // имя - expose
                                  this.namespace; // пространство – book

                                  this.element.on("click."+this.eventNamespace, function(){
                                         console.log("click");

                                  })
                           },
                           // метод отвечает за применение настроек

                           _setOption: function( key, value ) {
                                  // применяем изменения настроек
                                  this._super("_setOption", key, value );

                           },
                           // метод _destroy должен быть антиподом к _create
                           // он должен убрать все изменения внесенные изменения в DOM
                           // и убрать все обработчики, если таковые были

                           _destroy: function() {
                                  this.element.unbind('.'+this.eventNamespace);
                           }

                    });


                                                                                                        114


                                                                                        www.trk.kg
   109   110   111   112   113   114   115   116   117   118   119