嗨,我想知道是否有一个与复选框相关的事件可以被其他代码触发,而不是由用户触发...
例如:
对于“选择全部”复选框,它应该自动切换“selected”类以切换行的背景颜色。
我尝试了“change”和“click”,但这些只能由用户触发。
我注释掉了一些代码...顺便说一下,我想要有很多复选框来切换某些复选框的类,所以我想避免使用大量的“.closest('tr').addClass('selected');”等代码。
嗨,我想知道是否有一个与复选框相关的事件可以被其他代码触发,而不是由用户触发...
例如:
对于“选择全部”复选框,它应该自动切换“selected”类以切换行的背景颜色。
我尝试了“change”和“click”,但这些只能由用户触发。
我注释掉了一些代码...顺便说一下,我想要有很多复选框来切换某些复选框的类,所以我想避免使用大量的“.closest('tr').addClass('selected');”等代码。
$(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');
}
});
});
更新的Fiddle: http://jsfiddle.net/DC3EH/19/
我之所以改用change事件而不是click事件,是因为jquery处理事件触发的方式。当你触发click事件时,它会在改变复选框状态之前调用你的事件处理程序。绑定到change可以确保在状态更改后才调用你的事件。
我不确定这是否是您需要的,但我的想法是所有的<tr>
必须通过选中“全选”复选框来更改为已选择。请尝试这个http://jsfiddle.net/DC3EH/5/