所以我正在尝试编写一个jQuery插件,我有三个值,我想设置一个默认值是一个简单的数值,如果用户想要可以设置其他值,但如果他们没有设置它们需要有一个默认值,无论第一个设置如何。
这是我想要的更长版本
config.duration = 350;
config.closeDuration = closeDuration OR duration;
config.openDuration = openDuration OR duration;
基本上,如果没有将默认设置恢复为持续时间值。即使该值已由用户设置。 (例如,持续时间= 500)
我只是想知道是否有精简这个?
jQuery.fn.lighthouse = function(settings) {
var config = {
containerSelector: 'a',
childSelector: 'span',
closeSelector: '.close',
duration: 350,
openDuration: config.duration,
closeDuration: config.duration,
secondaryDuration: 100,
background: 'rgb(230, 230, 230)',
backgroundOpacity: '0.7'
};
if (settings){
config = $.extend(config, settings);
}
}
答案 0 :(得分:2)
通过将可选值设置为null,可以使用内联if语句来确定设置的值。以下是Karl-AndréGagnon和charlietfl答案的组合:
jQuery.fn.lighthouse = function(settings) {
var config = {
containerSelector: 'a',
childSelector: 'span',
closeSelector: '.close',
duration: 350,
openDuration: null,
closeDuration: null,
secondaryDuration: 100,
background: 'rgb(230, 230, 230)',
backgroundOpacity: '0.7'
};
if (settings){
config = $.extend(config, settings);
}
config.openDuration = config.openDuration || config.duration;
config.closeDuration = config.closeDuration || config.duration;
}