我开始成为一个插件创建者,并没有完全掌握它。一个问题是我想在你有两个数字时做出默认值。我需要能够将它们应用到代码中。
我的意思是这样的:
var defaults = {
numbers: [1, 2]
}
我喜欢jquery团队用draggable做的事情:
$('#drag').draggable({
grid: [1, 100]
});
我想做的事情。任何想法如何?
答案 0 :(得分:1)
一个很好的方法是使用$.extend
,它将两个或多个对象的内容合并到第一个对象中:
(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
是用户指定选项和“默认”选项的组合。有关详细信息,请参阅插件创作教程的this section。
示例: http://jsfiddle.net/2Djya/
P.S:确定插件如何工作的一个很好的资源是jQueryUI source本身。
答案 1 :(得分: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
的任何参数传递给您创建的设置默认值的对象。