2

我正在使用一个 jQuery 插件,它的功能定义如下:

    $('#mydiv').pluginAction({
        someproperty: val, 
        format: 'mm hh',
        labels: ['yes', 'no', 'maybe'], 
        labels1: ['never', 'always']
    });

在我的 HTML 页面中,我有多个 DIV,它们对于 , , 具有相同的属性formatlabelslabels1对于someproperty. 是否有某种类型的 JavaScript 表示法我可以利用来缩短定义,这样我就不必有重复的代码?

4

3 回答 3

6

有几种方法可以解决这个问题:

  1. 创建一个填补空白的函数;或者

  2. 如果插件是您的,请将这些值默认为您想要的。

(1) 的示例:

function props(val) {
  return {
    someproperty: val,
    format: 'mm hh',
    labels: ['yes', 'no', 'maybe'], 
    labels1: ['never', 'always']
  };
}

$("#mydiv").pluginAction(props("..."));
于 2010-04-11T07:28:23.320 回答
4

Cletus 有一个非常好的答案,它可以让您生成非常易读的代码。在您的情况下,这可能是最好的解决方案。

只是为了记录,类似以下的事情也是可能的。您可以创建一个存储所有固定属性的对象文字,然后someProperty在需要时使用jQuery#extend.

var props = {
 format: 'mm hh',
 labels: ['yes', 'no', 'maybe'], 
 labels1: ['never', 'always']
};

$('#mydiv').pluginAction($.extend(props, { someProperty: val }));
于 2010-04-11T07:42:02.873 回答
1

复制这种代码并没有错。它实际上清楚地说明了给定的 div 应用了什么样的行为。但是,如果您谈论的是数百个重复项,请使用其他人的建议。

于 2010-04-11T07:54:55.457 回答