Javascript jquery插件选项未正确扩展和覆盖
我对jquery插件和选项的编写有一个奇怪的问题Javascript jquery插件选项未正确扩展和覆盖,javascript,jquery,Javascript,Jquery,我对jquery插件和选项的编写有一个奇怪的问题 如果我像这样设置插件,它 如果我添加了一个需要覆盖的额外选项,则 通过该赋值,您将覆盖插件中的整个facebook对象,使其仅包含id变量 您最好将facebook id作为单独的属性来覆盖: ... facebook: { like_large: '<div class="fb-like" data-href="{url}" data-send="false" data-layout="box_count" data-wi
通过该赋值,您将覆盖插件中的整个
facebook
对象,使其仅包含id
变量
您最好将facebook id作为单独的属性来覆盖:
...
facebook: {
like_large: '<div class="fb-like" data-href="{url}" data-send="false" data-layout="box_count" data-width="120" data-show-faces="false"></div>',
like_small: '<div class="fb-like" data-href="{url}" data-send="false" data-layout="button_count" data-width="120" data-height="21" data-show-faces="false" data-colorscheme="light"></div>',
share: '<a name="fb_share" type="box_count" share_url="{url}" href="http://www.facebook.com/sharer.php?u={url}&t={title}">Share</a>',
},
facebook-id: 1000000,
...
。。。
facebook:{
就像你说的那样:,
就像你说的那样:,
共享:“”,
},
facebook id:1000000,
...
默认情况下,替换整个属性。因此,如果默认设置有以下内容:
{
…
facebook: {
like_large: '<div class="fb-like" data-href="{url}" data-send="false" data-layout="box_count" data-width="120" data-show-faces="false"></div>',
like_small: '<div class="fb-like" data-href="{url}" data-send="false" data-layout="button_count" data-width="120" data-height="21" data-show-faces="false" data-colorscheme="light"></div>',
share: '<a name="fb_share" type="box_count" share_url="{url}" href="http://www.facebook.com/sharer.php?u={url}&t={title}">Share</a>',
id: 195838043798363
},
…
}
整个facebook
对象将替换为{id:195838043798363}
如果您将true
作为其第一个参数传递,那么它将支持执行您试图让它执行的操作。更改此行:
var opt = $.extend({},defaults, options);
为此:
var opt = $.extend(true, {},defaults, options);
应该让它做你想让它做的事。@Jivings谢谢你的帮助!事实上,我更喜欢你的回答。虽然我的是一个简单的修复,你的使插件的设计更好。
{
…
facebook: {
id: 195838043798363
}
…
}
var opt = $.extend({},defaults, options);
var opt = $.extend(true, {},defaults, options);