将相同的.click事件应用于两个不同的div

时间:2011-07-18 11:52:22

标签: jquery click

我有两个不同的div(代码被简化了,这不是实际的代码。)

<div id="test"></div>
<div id="funt"></div>

我想要的是,将相同的点击事件附加到#funt: 类似的东西:

$('#test').click(function() {
    DoWork();
});
$('#funt).click(function() {
    DoWork();
});

function DoWork(){
    alert('yes');
}

但是有没有办法将多个div定义为相同的点击事件?

让我们说(是的,我知道这不起作用!)

($('#test'),('#funt')).click(function(){alert('yes')});

6 个答案:

答案 0 :(得分:18)

简单地:

$("#test, #funt").click(DoWork);

请参阅Multiple Selector.

答案 1 :(得分:0)

这应该有效

($('#test','#funt')).click(function(){alert('yes')});

http://api.jquery.com/multiple-selector/

答案 2 :(得分:0)

为div分配一个类,然后使用如下所示的类分配click事件:

<div class="clickable" id="test"></div>
<div class="clickable" id="funt"></div>

然后

$('.clickable').click(function()
{
    DoWork();
});

你也可以列出这样的id:

$("#test, #funt").click(DoWork);

我经常尝试使用类,因为当你处理多个div时它更干净 - 你不必列出每个类的ID。

答案 3 :(得分:0)

你实际上非常接近:

 $('#test, #funt').click(function() {
      });

答案 4 :(得分:0)

你有两个选择,要么你可以给这两个div一个类,然后只运行代码:

$(".myclass").click(function() {
    DoWork();
});

或者你可以定义一个函数:

function hookClick(arr, handler)  {
    foreach (var i in arr) {
        $(i).click(handler);
    }
}

然后使用

运行它
hookClick(["#div1", "#div2"], function() { /*do sth cool })

答案 5 :(得分:0)

您可以尝试使用此语法,

使用 Classes

$(".className1, .className2, .classNameN").on('click', function(){
    Do_Some_Work();
});

使用 Id's

$("#ID1, #ID2, #IDN").on('click', function(){
    Do_Some_Work();
});

使用IDClass

组合
<div id="z">z
    <div class="w">w</div>
    <div class="x">x</div>
   <div class="y">y</div>
</div>

$('#z.w , #z.y').on('click', function(){
    Do_Some_Work();
    //Pointer come here only when it click on `W` and `Y`
});