1

ウェブ上で良い例が見つからないので、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));
4

1 に答える 1

1

それを行うにはいくつかの方法がありますが、あなたのサンプルコードはかなり適切だと思います. 私が行う唯一の違いは、initメソッドを使用する代わりに、単にプラグイン コンストラクターを使用することです。

別の例が必要な場合は、この jquery プラグインで AMD を使用しました。

于 2013-10-06T10:35:43.670 に答える