15

私が現在取り組んでいる ASP MVC ページでは、3 つの入力フィールドの値が 4 番目の値を決定します。郵便番号、州コード、およびシャネル コードと呼ばれるものによって、テリトリー コードと呼ばれる 4 番目のフィールドの値が決まります。

数週間前に jQuery の学習を始めたばかりなので、.changeまず他の 2 つのフィールドの値をチェックするイベントを配置し、それらが存在する場合は、3 つを比較して Territory コードを決定する別のメソッドを呼び出すことができると思います。ただし、同じコードをさまざまな場所にたくさん書いているように見えるので、これにアプローチするためのよりエレガントな方法があるかどうか疑問に思っています。

4

3 に答える 3

30

複数のセレクターを指定することで、コールバックを複数の要素にバインドできます。

$(".field1, .field2, .field3").click(function() {
    return field1 +
           field2 + 
           field3;
});

クリックされた要素に応じて特定のアクションを実行する必要がある場合は、実際の計算を実行する関数を作成し、それを各コールバックから呼び出すという別のオプションがあります。

var calculate = function() {
    return field1 +
           field2 + 
           field3;
};

そして、クリックするたびにこの関数を呼び出します。

$(".field1").click(function() {
    // Perform field1-specific logic
    calculate();
});

$(".field2").click(function() {
    // Perform field2-specific logic
    calculate();
});

// etc..

これは、自分自身を繰り返さないことを意味します。

于 2013-04-29T19:50:06.493 に答える