2

我在使用 jQuery 事件的选择器变量时遇到问题。

当我将两个或三个 jquery 对象存储到变量中时,如何使用它们在同一个事件函数中编写代码而不重复同一行?这可能听起来令人困惑,但看看我的例子,你会明白的。

我可以很容易地写这个

$("#a, #b").click( function(){ 
 // stuff
} );

但是当我像这样存储它们时:

var a = $("#a"), b = $("#b");

并想为每个人分配点击事件。

// 这行得通,但是太长了

a.click(function(){});

b.click(function(){});

// 我想要类似的东西

(a + b).click(function(){});

不知道这在jquery中是否可行,如果可以,请帮助我提前谢谢

这是我测试过的 jsfiddle 链接,http://jsfiddle.net/UmeaW/

4

4 回答 4

4

您可以使用.add

a.add(b).click(function(){});
于 2013-07-19T11:16:05.410 回答
2

你也可以使用$.each

$.each([a, b, c], function () {
    this.click(function () {    
        result.text($(this).text() + " clicked");
    });
});

演示

于 2013-07-19T11:18:39.950 回答
0

尝试:

var c = a.add(b);
c.click(function(){});
于 2013-07-19T11:21:06.037 回答
0

首先不要像 $(a, b, c),记住 jQuery 选择器是基于 CSS 选择器 http://api.jquery.com/category/selectors/

制作 $("#a, #b, #c")

如果你可以使用函数 $.each()

$("#a, #b, #c").each(function(){
    var a = $(this);    
    a.click(function(){     
        result.text( a.text() + " clicked");
    });
})

http://jsfiddle.net/Xjfsx/

于 2013-07-19T11:23:07.970 回答