別のチェックボックスからバインドされたアクションを起動しようとして時間を無駄にしています (jQuery を使用)
http://jsfiddle.net/gasparirob/ZbMHQ/
ご覧のとおり、最初のチェックボックスをクリックすると、アラートが発生します (チェックボックスがチェックされている場合)。しかし、2 番目のチェックボックス (最初のチェックボックスもチェックする) をクリックすると、アラートは発生しません!
なんで?
別のチェックボックスからバインドされたアクションを起動しようとして時間を無駄にしています (jQuery を使用)
http://jsfiddle.net/gasparirob/ZbMHQ/
ご覧のとおり、最初のチェックボックスをクリックすると、アラートが発生します (チェックボックスがチェックされている場合)。しかし、2 番目のチェックボックス (最初のチェックボックスもチェックする) をクリックすると、アラートは発生しません!
なんで?
手動で呼び出す必要があります
$('#checkThis').change(function(){
$("#target").prop("checked", $(this).is(':checked'))
.change();
});
$('#target').change(function(){
if ($(this).is(':checked')) {
alert ('checked');
}
});
また、コードを使用するように変更しまし.prop()
た。これにより、より明確になります。
ID「ターゲット」のチェックボックスがチェックされているかどうかのみをチェックし、laert を作成した後にこれを追加すると、2 番目のチェックボックスは次のように機能するためです。
$('#checkThis').change(function(){
if ($(this).is(':checked')) {
alert ('checked');
}
});
その場合、最初のチェックボックスで変更イベントを手動で発生させることができます。
$('#checkThis').change(function(){
if($(this).is(':checked')){
$("#target")
.attr("checked","checked")
.change();
} else {
$("#target")
.attr("checked",false)
.change();
}
});