2

同じイベントハンドラーをアタッチしたいオブジェクトがいくつかあります。これまでのところ、私はこれを行っています:

$(object).bind(event, function(event) {
    // Code
});
$(object2).bind(event, function(event) {
    // Same code
});
$(object3).bind(event, function(event) {
    // Same code again
});

このアプローチには何も問題がないことはわかっていますが(またはそこにあります)、同じイベントの同じハンドラーを複数の異なるオブジェクトにバインドするための簡略化されたメソッドがあるかどうか疑問に思っています。

編集:私が意味するのは、書く代わりに、のobject1.bind(stuff); object2.bind(stuff); object3.bind(stuff); etcようなものが欲しいということですallObjects.bind(stuff)

4

4 に答える 4

3

.addメソッドを使用して、それらすべてを一度に選択できます。

$(object1).add(object2).add(object3).bind(event,handler);
于 2012-11-08T20:13:40.537 に答える
2
var myFunc = function(event){
  // do something
};

$(object).bind(event, myFunc);
$(object2).bind(event, myFunc);
$(object3).bind(event, myFunc);`
于 2012-11-08T20:13:39.463 に答える
1

どうですか、

$('selector1, selector2, selector3').bind(event, function(event) {
    // Same code again
});

注:object1がセレクター文字列で あると想定します。

于 2012-11-08T20:15:21.877 に答える
0

関数を含む変数を定義してから、オブジェクトを各バインドにベースします。このような:

var fn = function(event) {};
$(object).bind(fn);
$(object2).bind(fn);
$(object3).bind(fn);

付録:オブジェクトを配列に格納して、オブジェクトを反復処理できます。

$([object, object2, object3]).each(function(){
    this.bind(fn);
});

しかし、これは良いコーディングスタイルではないと思います。

于 2012-11-08T20:14:30.817 に答える