0

私はプラグインクリエーターになり始めており、そのコツを十分に持っていません。1つの問題は、2つの数値があるデフォルトを作成したいということです。そして、それらをコードに適用できるようにする必要があります。

私が言いたいのはこのようなものです:

var defaults = {
numbers: [1, 2]
}

jqueryチームがドラッグ可能でそれを行った方法が好きです:

$('#drag').draggable({
grid: [1, 100]
});

それが私がやりたいことです。どのようにアイデアはありますか?

4

2 に答える 2

1

これを行う良い方法の1つは、を使用することです。これは$.extend、2つ以上のオブジェクトのコンテンツを最初のオブジェクトにマージします。

(function($) {
    $.fn.foobar = function(options) {
        var settings = {
            numbers: [1, 2]
        };
        $.extend(settings, options);

        /* continue with plugin code. */           

        alert(settings.numbers[0] + " " + settings.numbers[1]);
    };
})(jQuery);

これsettingsは、ユーザー指定のオプションと「デフォルト」オプションの組み合わせです。詳細については、プラグインオーサリングチュートリアルのこのセクションを参照してください。

例: http: //jsfiddle.net/2Djya/

PS:プラグインがどのように機能するかを理解するための優れたリソースは、jQueryUIソース自体です。

于 2011-12-29T03:29:34.733 に答える
0

簡略化されたプラグインコード:

$.fn.yourPlugin = function( conf ){
    var config = $.extend({
        someVar : 'default'
        ,   foo : 'anotherDefault'
    }, conf );

    return this.each( function(){
        // do stuff with $( this ) and config
    } );
};

デフォルトを設定する作成したオブジェクトに渡される$.extendパラメータをコピーします。conf

于 2011-12-29T03:29:59.270 に答える