2

我正在浪费时间尝试从另一个复选框(使用 jQuery)触发绑定操作

http://jsfiddle.net/gasparirob/ZbMHQ/

如您所见,如果我单击第一个复选框,则会触发警报(选中复选框时)。但是,如果我单击第二个复选框(也检查第一个复选框),则不会触发警报!

为什么?

4

3 回答 3

2

您需要手动调用它

$('#checkThis').change(function(){
    $("#target").prop("checked", $(this).is(':checked'))
                .change();
});

$('#target').change(function(){
    if ($(this).is(':checked')) {
        alert ('checked');
    }
});​

http://jsfiddle.net/ZbMHQ/1/

我还更改了您的代码以.prop()使其更清晰。

于 2012-09-24T08:55:47.893 回答
0

因为您只检查您的 id 为“target”的复选框是否被选中,并且在您进行 laert 添加此复选框后,您的第二个复选框的工作方式类似于:

$('#checkThis').change(function(){
    if ($(this).is(':checked')) {
        alert ('checked');
    }
});​
于 2012-09-24T08:55:33.460 回答
0

在这种情况下,您可以在第一个复选框上手动触发更改事件:

$('#checkThis').change(function(){
    if($(this).is(':checked')){
        $("#target")
            .attr("checked","checked")
            .change();
    } else {
        $("#target")
            .attr("checked",false)
            .change();
    }
});

固定小提琴

于 2012-09-24T08:55:45.893 回答