我正在浪费时间尝试从另一个复选框(使用 jQuery)触发绑定操作
http://jsfiddle.net/gasparirob/ZbMHQ/
如您所见,如果我单击第一个复选框,则会触发警报(选中复选框时)。但是,如果我单击第二个复选框(也检查第一个复选框),则不会触发警报!
为什么?
我正在浪费时间尝试从另一个复选框(使用 jQuery)触发绑定操作
http://jsfiddle.net/gasparirob/ZbMHQ/
如您所见,如果我单击第一个复选框,则会触发警报(选中复选框时)。但是,如果我单击第二个复选框(也检查第一个复选框),则不会触发警报!
为什么?
您需要手动调用它
$('#checkThis').change(function(){
$("#target").prop("checked", $(this).is(':checked'))
.change();
});
$('#target').change(function(){
if ($(this).is(':checked')) {
alert ('checked');
}
});
我还更改了您的代码以.prop()
使其更清晰。
因为您只检查您的 id 为“target”的复选框是否被选中,并且在您进行 laert 添加此复选框后,您的第二个复选框的工作方式类似于:
$('#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();
}
});