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]或空对象。感谢
答案 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);
}