各行<input type="checkbox" />
の最初のセルに があるテーブルがあります。
特にチェックボックスを切り替えるクリックハンドラーのセットアップが<tr>
あります。
実際のチェックボックスをクリックしない限り、これは完全に機能しています。その結果、チェックボックスは、デフォルトの動作で1回、<tr>
イベントハンドラーで1回、2回トグルされるため、本来の状態とは反対の状態になります。
私がやりたいことは、基本的にチェックボックスのクリックを無視し、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>