Используя этот плагин jQuery (не мой), хорошая практика кодирования? - PullRequest
1 голос
/ 08 ноября 2011

Надеюсь, вопрос не слишком неопределенный.В данный момент я пытаюсь написать плагин для jQuery, но я борюсь с различными способами его структурирования.Я нашел bxSlider и подумал, что это довольно доступно для кода плагина.Вот простой пример:

(function($){

$.fn.letSlider = function(options){     

    var defaults = {
        speed: 500,                         
        onBeforeSlide: function(){} //Callback          
    }

    var options = $.extend(defaults, options);

    //cache base element
    base = this;

        //public functions
        this.init = function(){
            text = giveText();
            alert(text + ' ' + options.speed);

        };

        //private functions
        function giveText(){
                return 'blubb';
        };

    this.each(function(){
        // make sure the element has children
        if($(this).children().length > 0){
            base.init();
        }
    });

    return this;                        
}
 })(jQuery);

Так что у него есть четкая структура, которую мне удается понять.Тем не менее, он выглядит совсем не так, как все структуры плагинов, которые я видел до сих пор, поэтому я не уверен, если это не вызовет у меня проблемы позже.Тем не менее, он делает в основном все, что мне нужно: открытые параметры, обратные вызовы, частные и публичные функции.И с этим. Каждый должен быть цепным тоже.Одна вещь, которую я уже заметил, состоит в том, что в основном все находится в исходной функции $ .fn.bxSlider = (options) {... и я никогда не видел этого раньше.

Что касается других структур плагинов, они либо слишком сложны для меня (позор мне), либо мне не удается их реализовать.Например, с http://www.learningjquery.com/2007/10/a-plugin-development-pattern мне не удалось сделать опции (переменные параметров) доступными в частных или публичных функциях.Но я отвлекся....

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

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

0 голосов
/ 08 ноября 2011

Я думаю, вам просто нужно использовать любую технику, которая лучше всего подходит для плагина, который вы пытаетесь создать. Приведенный вами пример выглядит как хороший шаблон для начала.

Если у вас возникли проблемы с доступом к opts, это потому, что это закрытая переменная внутри функции $ .fn.hilight. Поэтому методы, определенные за пределами одной и той же области видимости, не могут получить к ней доступ.

В приведенном здесь примере options также является частной переменной, но методы, определенные ниже, находятся в той же области видимости, что им предоставляется доступ.

Пример 1:

foo = function () {
  var secret = "foo";
}

foo.bar = function() {
  alert(secret); // NOT OK!
}

Пример 2:

foo = function() {
  var secret = "foo";

  this.bar = function() {
    alert(secret); // OK!
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...