2

関数が次のように定義されているjQueryプラグインを使用しています。

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

私の HTML ページにはformatlabelslabels1、 のプロパティは同じですが、 の値が異なる複数の DIV があります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 に答える