2013-10-05 3 views
1

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

Любая информация о добавлении это плагин будет хорошо (я все еще учусь)

Так это хороший способ использовать поддержку AMD ??

;(function (factory) { 
    if (typeof define === 'function' && define.amd) { 
     // AMD. Register as an anonymous module. 
     define(['jquery'], factory); 
    } else { 
     // Browser globals 
     factory(jQuery); 
    } 
}(function($, window, document, undefined){ 

    //"use strict"; // jshint ;_; 

    var pluginName = 'coolPlugin'; 

    function Plugin(element, options){ 

     this.obj = $(element); 
     this.o = $.extend({}, $.fn[pluginName].defaults, options); 

     this.init(); 
    }; 

    Plugin.prototype = { 

     init: function(){ 

      var self = this; 

     }, 

     _private: function(param){ 
      var self = this; 
     }, 

     destroy: function(){ 
      $.removeData(this.obj, this.pluginName);   
     } 

    }; 

    $.fn[pluginName] = function(option, param) { 
     return this.each(function() { 
      var $this = $(this); 
      var data = $this.data(pluginName); 
      var options = typeof option == 'object' && option; 
      if (!data){ 
       $this.data(pluginName, (data = new Plugin(this, options))) 
      } 
      if (typeof option == 'string'){ 
       data[option](param); 
      } 
     }); 
    }; 

    $.fn[pluginName].defaults = { 
     option1: 'helloooo' 

    }; 


})(jQuery, window, document)); 

ответ

1

Есть несколько способов сделать это, но я бы сказал, что ваш пример кода довольно пятно на. Только различие, которое я хотел бы сделать, вместо использования метода init просто использовать конструктор Plugin.

Я использовал AMD в this jquery plugin если желаете другой пример.

Смежные вопросы