4

嗨,我想知道是否存在可以由其他代码而不是用户触发的复选框事件...

例如

http://jsfiddle.net/DC3EH/

对于“全选”复选框,它还应自动切换“选定”类以切换行的背景颜色。

我试过“改变”和“点击”,这只是由用户触发的。

我注释掉了一些代码......顺便说一句,我想要有很多复选框来切换某些类别的复选框,所以我想避免有很多“.closest('tr').addClass('selected');” 等等

4

4 回答 4

4

它似乎完美地工作:

http://jsfiddle.net/DC3EH/20/

我用过 .change()

于 2012-09-15T02:53:06.627 回答
0

我不确定这是您需要的,但我认为<tr>必须通过选中“全选”复选框将所有内容更改为选中。试试这个http://jsfiddle.net/DC3EH/5/

于 2012-09-15T01:33:18.783 回答
0

您是否尝试过触发点击事件?

.trigger("click") // for each checkbox

示例:http: //jsfiddle.net/ELTRd/1/

于 2012-09-15T01:40:17.823 回答
0

如果绑定到 change 事件,则可以在 jquery 中触发 click 事件,该事件将检查复选框并依次触发 change 事件:

$(document).ready(function(){
    $('#check_all').click(function(event) {
        $('[name^="checkbox"]').trigger("click");
    });   

    $('[name^="checkbox"]').change(function(event) {
        console.log('a');
        if ($(this).is(":checked")) {
             $(this).closest('tr').addClass('selected');
        }
        else {
             $(this).closest('tr').removeClass('selected');
        }
    });    
});​

更新小提琴:http: //jsfiddle.net/DC3EH/19/

我切换到 change 事件而不是 click 事件的原因是 jquery 如何处理事件的触发。当您触发单击时,它将在更改复选框状态之前调用您的事件处理程序。绑定到更改可确保在状态更改之前不会调用您的事件。

于 2012-09-15T01:52:32.237 回答