2

同じ設定を持つカスタム コントロールの JavaScript をグループ化する方法はありますか?

例:

1 つのページに 3 つのカスタム コントロールを配置しました。それぞれが次のようなJavaScriptを記述します

ucx.initialize( controlID, settings );

だから私は得る...

ucx.initialize("txtValue1", { sync: true, mask: '0 km' });
ucx.initialize("txtValue2", { sync: true, mask: '0 km' });
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});

ご覧のとおり、「txtValue1」と「txtValue2」の設定は同じです。

だから私はそれらをグループ化したい:

ucx.initialize(["txtValue1", "txtValue2"], { sync: true, mask: '0 km'});
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});

可能です?

4

2 に答える 2

0

initializeそれはあなたの機能が何をするかに完全に依存します。

少なくとも、デフォルトの共通設定オブジェクトを使用できます。

var initialize = function (controlID, settings) { 
    ...
    settings = settings || { sync: true, mask: '0 km'};
    ... 
};

次に、設定オブジェクトを渡さずに関数を呼び出すと、デフォルトで共通のものになります。

ucx.initialize("txtValue1");
ucx.initialize("txtValue2");
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'});
于 2012-08-14T13:18:07.060 に答える
0

同様に機能する独自のメソッドを作成できます。

ucx.initializeMultiple = function() {
    var settings = arguments[arguments.length - 1];
    for (var i = 0; i < arguments.length - 1; i++) {
        ucx.initialize(arguments[i], settings);
    }
}

次に、次を呼び出すことができます。

ucx.initializeMultiple("txtValue1", "txtValue2", { sync: true, mask: '0 km'});

引数にはいくつでもフィールド名を入れることができます。最後の引数は設定オブジェクトです。その前のすべての引数は、それぞれがその設定を取得する必要があるフィールド名として解釈されます。


設定はインラインである必要はないことに注意してください。この新しいメソッドを作成せずに、設定を繰り返さないようにこれを行うこともできます。

var settings1 = { sync: true, mask: '0 km'};
ucx.initialize("txtValue1", settings1);
ucx.initialize("txtValue2", settings1);
于 2012-08-14T13:27:18.707 に答える