有一张桌子
<table>
<tr class="c1"><td><input type="checkbox" name="tableRow[]"></td>......</tr>
<tr class="c2"><td><input type="checkbox" name="tableRow[]"></td>......</tr>
<tr class="c1"><td><input type="checkbox" name="tableRow[]"></td>......</tr>
...
</table>
然后js是:
$('input:checkbox[name*=tableRow]').click(function(event) {
var el = $(this);
if (el.attr('checked')) {
el.parents('tr').css("background-color", '#ffcccc');
}
else {
el.parents('tr').css("background-color", 'inherit');
}
event.stopPropagation();
});
$('input:checkbox[name*=tableRow]').parents('tr').click(function() {
var el = $(this).find('> td:eq(0) > :checkbox');
el.click();
});
复选框以两种方式检查和取消选中,但是当我点击“tr”时,它会在检查集之前看起来像事件rans。
需要:在两个ckecks中然后设置css
答案 0 :(得分:0)
更改为:
$('input:checkbox[name*=tableRow]').change(function(event) { ... });
而不是el.attr('checked')
使用el.is(':checked')
;
答案 1 :(得分:0)
这是一个工作示例: jsFiddle
请注意,您应该使用带有'for'属性的label标签,以获得更加友好的W3C代码。
$('input:checkbox[name*=tableRow]').click(function (event) {
var el = $(this);
test(el);
});
$('input:checkbox[name*=tableRow]').parents('tr').click(function () {
var el = $(this).find(':checkbox');
el.attr('checked', !el.attr('checked'));
test(el);
});
function test(el){
if (el.is(':checked')) {
el.parents('tr').css("background-color", '#ffcccc');
}
else {
el.parents('tr').css("background-color", 'inherit');
}
event.stopPropagation();
}