現在のJQueryには、ユーザーがテーブルの行をクリックした場合にチェックボックスをオンまたはオフにするイベントがあります。これに伴う問題は、ユーザーが実際にチェックボックスをオンにすると、jqueryがチェックボックスイベントで発生し、チェックボックスをオン/オフにしますが、TRイベントが発生して、チェックボックス値を元に戻すことです。
ここで例を参照してください:http://jsfiddle.net/radi8/KYvCB/1/
チェックボックスを無効にすることはできますが、ユーザーがチェックボックスを選択しようとしても、TRイベントはトリガーされません。
必要なのは、チェックボックスの「クリック」イベントを無効にし、チェックボックスが選択されたときにTRイベントを発生させる方法です。
var charges = {
init: function() {
// get the selected row checkbox
//$('.charges').attr('disabled', true);
$('.rowclick tr').click(function() {
if ($(this).find('td input.charges:checkbox').is(':checked')) {
$(this).find('td input.charges:checkbox').attr("checked", false);
}
else {
$(this).find('td input.charges:checkbox').attr("checked", true);
}
});
}
};
charges.init();