jquery将侦听器应用于元素集

时间:2014-12-10 15:58:41

标签: javascript jquery

我正在试图弄清楚这个简单而复杂的任务是否有解决方案。

假设我们有这些变量:

var dom1 = $('.selector1');
var dom2 = $('.selector2');

现在我想申请一个dom1和dom2的监听器。是否存在一种不同的,直接的,更可靠的解决方案,而不是逐一应用该功能?

dom1.click(function(){
    //a lot of stuff
}
dom2.click(function(){
    //the same lot of stuff
}
//or
$([dom1,dom2]).each(function(){
    this.click(function(){
        //the same lot of stuff
    });
}

我知道这不是一个有效的解决方案,但我正在搜索这样的内容:

//NOT WORKING, NON-SENSE, I KNOW
$([dom1,dom2]).click(function(){
    //the same lot of stuff
}

提前谢谢。

2 个答案:

答案 0 :(得分:5)

您可以使用逗号分隔选择器选择两个集合元素:

$('.selector1, .selector2').click(fn);

或者,您可以使用add()将包含jQuery对象的两个变量连接在一起:

dom1.add(dom2).click(fn);

答案 1 :(得分:4)

您可以使用jQuery.add将元素添加到当前集合中。

dom1.add(dom2).click(function(){
    // your code goes here
});

否则,您可以使用以逗号分隔的选择器。