【发布时间】:2011-10-12 19:13:59
【问题描述】:
我设置了一个表格,每行都有一个复选框作为行中的第一项(想想 Gmail 的收件箱)。该行的<tr> 绑定了一个悬停和单击事件处理程序。
我想要发生的是,当用户点击复选框时,复选框会被选中,仅此而已。当用户单击行中的其他任何位置时,它应该执行其他操作。我试图通过查看正在传递的事件的event.target 并查看这是否是一个复选框来实现这一点。但是,在我当前的实现中,当用户单击复选框时,什么也没有发生,当他们单击行中的其他任何位置时,它的行为符合我的预期。
我在复选框方面做错了什么?
这是我的代码:
$('.navTable > tbody > tr').hover(function() {
if (!$(this).children('td').hasClass('spacer') && !$(this).children('th').length > 0)
$(this).css({background : "#EFEFEF", border : "1px solid #CCC"});
},function() {
$(this).css({background : "", border : ""});
}).click(function(e) {
console.log(e);
if(e.target.attributes[0].nodeValue == "checkbox") {
// Check the checkbox
$("#"+e.target.id).attr('checked', 'checked');
} else {
// Do something else
}
return false;
});
感谢您提供的任何帮助。
【问题讨论】: