divの親行にクリックイベントを設定して、クリックされたときに子チェックボックスを選択しました。問題は、実際のチェックボックスをクリックすると、親のクリックがチェックボックスのクリックイベントを上書きし、チェックボックスがチェックされないことです。
チェックボックスが親divの子ではなくなるようにソリューション全体を変更する以外に、この問題を解決する方法がわかりませんか?テーブルの行は動的に生成されるため、可変数があります。
function SelectChildCheckBox(element) {
var $chkBox = $(element).children().find("input:checkbox:first"),
value = $chkBox.attr("checked");
$chkBox.attr("checked", !value);
if (!$chkBox.attr("checked")) {
$(element).attr("class", "dg_row");
}
else {
$(element).attr("class", "dg_row_sel");
}
}
ここに例を作成しました:http://jsfiddle.net/6sStE/3/
アップデート:
実際のチェックボックスにonmouseupイベントを追加することで、この問題を解決することができました。これはおそらく最も洗練された解決策ではないので、もしあれば代替案を投稿してください。ありがとう!
$.OnMouseUpChkBoxEvent = function(element) {
var $chkBox = $(element)
value = $chkBox.attr("checked");
$chkBox.attr("checked", !value);
}