将click事件函数分配给jQuery中的多个元素?

时间:2012-11-04 20:53:08

标签: jquery

我的网页上有多个复选框,其ID以checkrow开头 行的ID可以是 checkrow1 checkrow2 checkrow21 等。 我想将click事件功能分配给每个复选框 我尝试了以下但它似乎不起作用。执行此操作的jQuery代码是什么?

$('input[id^="checkrow"]').click(function () {
    alert('1')
});

更新 上面的代码有效。我没有将处理程序附加到click事件的原因是因为执行上面的代码时复选框不存在。我使用的是虚拟化的HTML5网格,其中的复选框仅在我使用的第三方控件的“数据绑定”事件中创建。一旦我将上面的代码放在'Databound'事件中,它就可以正常工作。

3 个答案:

答案 0 :(得分:4)

让我猜一下,这些元素是在DOM准备好后动态创建的。

使用on - 委托活动。

$('parentSelector').on('click', 'input[id^="checkrow"]', func);

当然,请确保您的代码位于DOM ready回调中。

答案 1 :(得分:3)

使用复选框的类,然后使用点定位类名。每个复选框都有一个属性“class ='checkbox'”。

$('.checkbox').click(function(){
    alert('Check clicked.');
});

答案 2 :(得分:1)

另一种解决方案:在选择id = checkrow *之后找到复选框,然后添加点击事件:

$('input[type=checkbox]').each(function() {
    if ( this.id.match(/^checkrow\d+/) ) {
        $(this).click(function() {
            // do what you want 
        });
    }
});