jQuery插件。添加选项和回调函数

时间:2012-10-28 16:40:52

标签: javascript jquery

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

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

所选答案的第二部分jQuery Plugin: Adding Callback functionality描述了如何在选项对象中添加回调。

// 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]或空对象。感谢

2 个答案:

答案 0 :(得分: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 || {}确保如果用户没有提供任何选项,我们会使用空选项对象

答案 1 :(得分: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);
}​