我正在使用一个jQuery插件,其功能定义如下:
$('#mydiv').pluginAction({
someproperty: val,
format: 'mm hh',
labels: ['yes', 'no', 'maybe'],
labels1: ['never', 'always']
});
在我的HTML页面中,我有多个DIV,它们具有format
,labels
,labels1
相同的属性,但someproperty
的值不同。是否有某种类型的JavaScript符号我可以利用它来缩短定义,以便我不必重复代码?
答案 0 :(得分:6)
有几种方法可以解决这个问题:
创建一个填充空白的函数;或
如果插件是您的,请将这些值默认为您想要的值。
(1)的例子:
function props(val) {
return {
someproperty: val,
format: 'mm hh',
labels: ['yes', 'no', 'maybe'],
labels1: ['never', 'always']
};
}
$("#mydiv").pluginAction(props("..."));
答案 1 :(得分:4)
Cletus有一个非常好的答案,它允许您生成非常易读的代码。这可能是您案例中最好的解决方案。
只是为了记录,以下类似的东西也是可能的。您可以创建存储所有固定属性的对象文字,然后在需要时使用jQuery#extend
指定添加额外属性(例如示例中的someProperty
)。
var props = {
format: 'mm hh',
labels: ['yes', 'no', 'maybe'],
labels1: ['never', 'always']
};
$('#mydiv').pluginAction($.extend(props, { someProperty: val }));
答案 2 :(得分:1)
复制那种代码没有错。它实际上清楚地表明了哪种行为适用于给定的div。但是,如果你说的是数百个重复,请使用其他人的建议。