1

チェックボックスを含むdiv要素があります。divをクリックすると、チェックボックスを切り替えます。これを行うには、次のコードを$(#div).clickに割り当てます。

$(this).find(":checkbox").prop("checked", !$(this).find(":checkbox").prop("checked"));

問題は、チェックボックス自体がクリックされた場合でも、上記のコードが実行されたままであるため、チェックボックスが同じ状態のままになることです。これをどのように修正しますか?

4

3 に答える 3

2

イベントが盛り上がっています。イベントの伝播を停止する必要があります。1つの方法は

$('#myDiv :checkbox').click(function(e){
    e.stopPropagation();
});

編集

divでイベントを処理する場合は、これを使用します

$('div').click(function(e) {

    // check if the event was triggered by an input box
    if (e.target.nodeName != "INPUT") {
        $(this).find(":checkbox").prop("checked", !$(this).find(":checkbox").prop("checked"));
    }

    // do something else 
    alert('hey there!');

});​

デモ-http://jsfiddle.net/QnbhX/

于 2012-12-12T18:01:14.810 に答える
0

div要素のonclick()に、チェックボックスの出力を切り替えるjavascript関数をアタッチします。それはもっと簡単な方法ではありませんか?

于 2012-12-12T18:01:52.413 に答える
0

次のようなより優れたセレクターを使用する必要があります。

$('#myDiv').find(":checkbox").prop("checked", !$(this).find(":checkbox").prop("checked"));
于 2012-12-12T18:02:07.923 に答える