0

http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options描述了插件如何具有默认选项。

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

选择答案jQuery插件的第二部分:添加回调功能描述了如何在选项对象中添加回调。

// 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);

如何同时添加默认设置和回调函数?另外,我对为什么要针对 arguments[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

关于你的最后一个问题,扩展arguments[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 回答