2

別のチェックボックスからバインドされたアクションを起動しようとして時間を無駄にしています (jQuery を使用)

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

ご覧のとおり、最初のチェックボックスをクリックすると、アラートが発生します (チェックボックスがチェックされている場合)。しかし、2 番目のチェックボックス (最初のチェックボックスもチェックする) をクリックすると、アラートは発生しません!

なんで?

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「ターゲット」のチェックボックスがチェックされているかどうかのみをチェックし、laert を作成した後にこれを追加すると、2 番目のチェックボックスは次のように機能するためです。

$('#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 に答える