JQuery将同一事件附加到2个对象

时间:2012-11-08 20:12:25

标签: javascript jquery html

我有几个对象,我想附加相同的事件处理程序。到目前为止,我正在这样做:

$(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 个答案:

答案 0 :(得分:3)

您可以使用.add方法一次性选择所有内容:

$(object1).add(object2).add(object3).bind(event,handler);

答案 1 :(得分:2)

var myFunc = function(event){
  // do something
};

$(object).bind(event, myFunc);
$(object2).bind(event, myFunc);
$(object3).bind(event, myFunc);`

答案 2 :(得分:1)

怎么样,

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

注意:假设object1是选择器字符串。

答案 3 :(得分:0)

只需定义一个包含函数的变量,然后将每个绑定的对象重低音。 像这样:

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

Apendix:你可以将对象存储在数组中,迭代它们:

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

但是我不认为这是一种很好的编码风格....

相关问题