jQuery插件覆盖选项
不幸的是,我遇到了jQuery插件的一个问题。 我制作了一个小插件来帮助构建引导模式 插件的选项如下所示:jQuery插件覆盖选项,jquery,Jquery,不幸的是,我遇到了jQuery插件的一个问题。 我制作了一个小插件来帮助构建引导模式 插件的选项如下所示: defaults = { modalName: "", size: "md", title: "", body: "", buttons: { confirm: { class: 'btn btn-primary', value: 'Save' }, ca
defaults = {
modalName: "",
size: "md",
title: "",
body: "",
buttons: {
confirm: {
class: 'btn btn-primary',
value: 'Save'
},
cancel: {
class: 'btn btn-default',
value: 'Cancel'
}
}
};
$.fn.CreateModel = function(options) {
options = $.extend({}, defaults, options);
....
};
但我希望确认按钮的值在某些页面上有所不同。我想我可以这么做:
$( 'body' ).CreateModel ( {
// Different settings
buttons: {
confirm: {
value: 'Save & exit'
}
}
});
但不幸的是,这完全清除了默认对象,只留下按钮.confirm.value
。我有办法解决这个问题吗
提前谢谢 您还没有向我们展示如何分别使用
默认值
和传入参数的对象的实现,但是您可以使用
大概是这样的:
defaults = {
modalName: "",
size: "md",
title: "",
body: "",
buttons: {
confirm: {
class: 'btn btn-primary',
value: 'Save'
},
cancel: {
class: 'btn btn-default',
value: 'Cancel'
}
}
};
$.fn.CreateModel = function(options) {
options = $.extend({}, defaults, options);
....
};
使用jQuery函数
.extend
,您可以将true作为第一个允许深度合并的参数传递
您必须更改行this.options=$.extend({},默认值,选项)代码>至:
this.options = $.extend(true, {}, defaults, options) ;
请参见此处的示例:对此表示抱歉。我正在使用这个模板:非常感谢!这就成功了。将在4分钟内将此标记为答案;)