我有一个复选框列表。每个复选框都有.change(function(){alert('xyz')})。每个复选框都有一个类abc
我还有一个名为“ ALL”的附加复选框。更改“所有”复选框后,它将更改所有其他复选框的状态。
我希望更改“所有”复选框以触发所有其他复选框的更改(.change(...))。但是,由于其他复选框的状态是通过编程方式完成的,因此它本身无法运行。
我尝试使用$('.abc').change()触发所有复选框的change事件,但是没有用。
我做错了什么,如何才能完成当前的任务?
顺便说一句,如果我做$('#id_of_a_specific_checkbox').change()那就很好。
谢谢。

更新
我所拥有的例子:
http://jsfiddle.net/ZqJvc/

这几乎是我在大型项目中拥有的东西...在简短的示例中,它可以工作:/
但是在实际项目中,它不起作用。唯一的区别是,在实际项目中,我有很多复选框。很奇怪...我想这又回到了调试器。谢谢。

更新
Chrome完全崩溃后,...我重新启动了浏览器,它就像上面的示例一样工作。抱歉浪费我们的时间。再次感谢你们。

最佳答案

若要在所有复选框更改时将.abc类的所有复选框设置为true,请使用

$("input[name=ALL]").change( function( ) {

    $(".abc").prop("checked", $(this).prop("checked") );
    $(".abc").trigger("change");
});


小提琴here

07-24 09:50
查看更多