不幸的是,我遇到了jQuery插件的问题。 我制作了一个小插件,以方便构建引导模态。
插件的选项如下所示:
defaults = {
modalName: "",
size: "md",
title: "",
body: "",
buttons: {
confirm: {
class: 'btn btn-primary',
value: 'Save'
},
cancel: {
class: 'btn btn-default',
value: 'Cancel'
}
}
};
但是我希望某些页面的确认按钮的值不同。我以为我可以这样做:
$( 'body' ).CreateModel ( {
// Different settings
buttons: {
confirm: {
value: 'Save & exit'
}
}
});
但不幸的是,这完全清除了默认对象,它只留下buttons.confirm.value
。有什么方法可以解决这个问题吗?
提前致谢!
答案 0 :(得分:2)
您没有向我们展示您如何使用defaults
以及在参数中传递的对象的实现,但您可以使用$.extend
解决此问题。
这样的事情:
$.fn.CreateModel = function(options) {
options = $.extend({}, defaults, options);
....
};
答案 1 :(得分:1)
使用jQuery函数.extend
,您可以传递true作为允许深度合并的第一个参数。
您必须将第this.options = $.extend( {}, defaults, options) ;
行更改为:
this.options = $.extend(true, {}, defaults, options) ;
请在此处查看示例:http://jsfiddle.net/n5BKk/