0

http://docs.jquery.com/Plugins/Authoring#Defaults_and_Optionsでは、プラグインにデフォルト オプションを設定する方法について説明しています。

var settings = $.extend( {
  'location'         : 'top',
  'background-color' : 'blue'
}, options);

選択した回答jQuery プラグインの 2 番目の部分: コールバック機能の追加では、オプション オブジェクトにコールバックを追加する方法について説明します。

// extend the options from pre-defined values:
var options = $.extend({
    callback: function() {}
}, arguments[0] || {});

// call the callback and apply the scope:
options.callback.call(this);

デフォルト設定とコールバック関数の両方を同時に追加するにはどうすればよいですか? また、引数[0]または空のオブジェクトに対してデフォルトのコールバック関数を拡張する理由について少し混乱しています。ありがとう

4

2 に答える 2

1

両方をマージするだけで、オブジェクトに必要な数のアイテムを含めることができます

$.fn.myPlugib = function( user_options ) {  
    var options = $.extend({
        'location'         : 'top',
        'background-color' : 'blue'
        'callback': function() {}
    }, user_options || {});

    //now options object can be used to get callback or any other options when needed
    options.callback.call(this, options.location)
}

user_options || {}ユーザーがオプションを提供していない場合は、空のオプション オブジェクトを使用するようにします

于 2012-10-28T16:44:44.323 に答える
1

最後の質問に関しては、拡張 onarguments[0]は、明示的なパラメーターを呼び出しsettingsて実行することと同等です。

$.fn.plugin = function(settings) {
    // extend the options from pre-defined values:
    var options = $.extend({
        callback: function() {}
    }, settings || {});

    // call the callback and apply the scope:
    options.callback.call(this);
}​
于 2012-10-28T16:49:24.857 に答える