我有一个表格,其中每一行在<input type="checkbox" />
第一个单元格中都有一个。
我有一个点击处理程序设置,<tr>
其中包括切换复选框。
这是完美的,除非我点击实际的复选框,这会导致复选框的状态与它应该的状态相反,因为它被切换两次,一次是默认行为,一次是<tr>
事件处理程序。
我想要做的基本上是忽略复选框点击,只响应点击tr。
这是我的 tr 事件处理程序
$('.files-table tbody').on('click', 'tr', function (e) {
var check = $('.check', this);
check.prop('checked', !check.prop('checked'));
check.prop('checked') ? selected++ : selected--;
numSelected.html(selected + ' item' + (selected === 1 ? ' ' : 's ' ) + 'selected: ');
if (selected == 1) {
withSelected.addClass('in').removeClass('hide');
noSelected.removeClass('in').addClass('hide');
} else if (selected == 0) {
withSelected.removeClass('in').addClass('hide');
noSelected.addClass('in').removeClass('hide');
}
if (check.prop('checked')) {
selectedItems[check.data('type')].push(check.data('id')+"");
} else {
selectedItems[check.data('type')].splice(check.data('id')+"");
}
console.log(selectedItems);
$(this).toggleClass('info');
});
这是一个示例行:
<tr>
<td style="width:15px;">
<input class="check" type="checkbox" data-id="6" data-type="directories">
</td>
<td>
<a href="/files/browse/1. First/1.1 First Child of First/6"
class="needs-tooltip"
title="Browse Directory">
<i class="icon icon-folder-close"></i>
</a>
1.1 First Child of First
</td>
<td>Directory</td>
<td>0 Items</td>
<td>27 Jan 2013</td>
<td>--</td>
<td>--</td>
</tr>