0

これと同様の方法で使用できるプラグインを作成する必要があります。これは実際に使用する目的ではありませんが、完全に理解するためのテストの開始です。

HTML:

<div id="div"></div>

Javascript:

var plugin = $('#div').plugin();

plugin.message.set('hi');
alert(plugin.message.get());

私が欠けているのは、要素にプラグインのインスタンスを 1 つ作成し、それを使用してプロパティを取得および設定する機能です。

以下のように少し設定すると思いますが、誰かギャップを埋めてもらえますか? たとえば、メソッド「get」を呼び出す方法と、引数を渡す方法がわかりません...

$.fn.plugin = function () {
    var target = this;

    methods: {

        var message = {
            get: function () {
                return $(target).text();
            },
            set: function () {
                $(target).text(message);
            },
        };

    };

};
4

1 に答える 1

2

これは、一般的に使用される jQuery プラグインの基本的なスケルトンです。

(function($)
{
    var parameters = 
    {
        myDefault: "default"
    };

    var methods = {
        init : function(options) {
            return this.each(function() {
                parameters = $.extend(parameters, options);
            });
        },
        myMethod: function(){}
    };

    $.fn.myPlugin = function(methodOrOptions) {
        if ( methods[methodOrOptions] ) {
            return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
            // Default to "init"
            return methods.init.apply( this, arguments );
        } else {
            $.error( 'Method ' +  method + ' does not exist on jQuery.myPlugin' );
        }    
    };

})(jQuery);

このように使用します:

初期化

$('#myDiv').myPlugin({
    myDefault: "override"
});

これによりメソッドが呼び出さinitれ、この場合、デフォルトのパラメーターが変更されます。

メソッドを呼び出す

$('#myDiv').myPlugin('myMethod'); 

詳細はこちら: http://learn.jquery.com/plugins/basic-plugin-creation/

于 2013-07-15T13:07:58.853 に答える