0

我在 id 以 . 开头的页面上有多个复选框checkrow
行 ID 可以是checkrow1checkrow2checkrow21等。
我想将点击事件函数分配给这些复选框中的每一个。
我尝试了以下方法,但似乎不起作用。执行此操作的 jQuery 代码是什么?

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

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

4

3 回答 3

4

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

使用on- 委托事件。

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

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

于 2012-11-04T20:55:33.843 回答
3

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

$('.checkbox').click(function(){
    alert('Check clicked.');
});
于 2012-11-04T20:55:08.130 回答
1

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

$('input[type=checkbox]').each(function() {
    if ( this.id.match(/^checkrow\d+/) ) {
        $(this).click(function() {
            // do what you want 
        });
    }
});
于 2012-11-04T21:34:50.723 回答