0

私はこの質問のメソッドを使用しました: 別のdivでdivクラスをonclickに変更し、bodyクリックで元に戻します

だからここに私のjQuery関数があります:

jQuery('.checkbox_wrapper').on('click', function(e){
   jQuery(this).parent()
   .toggleClass('not_selected')
   .toggleClass('selected'); 
});

ただし、正常に動作していないようです。クラスが変更されるまでに複数回クリックする必要があります。

私のjsfiddleを参照してください: http://jsfiddle.net/7A3vw/

JavaScript と競合している可能性があると考えて、必要最小限に切り詰めましたが、単一の関数でも、クラスが実際に変更されるまでに複数回クリックする必要があります。実稼働環境では 1 回のクリックで非表示のチェックボックスが切り替えられるため、複数回のクリックは妥当ではありません。

誰かがこの問題の原因を突き止めるのを手伝ってくれますか?

4

5 に答える 5

1

あなたのdivのトグルと一緒にチェックボックスをチェックする必要があります。

$(document).ready(function(e) {
    $('.checkbox_wrapper').on('click', function(e){ 
       var checked = $(this).find('input[type="checkbox"]').is(":checked");
       if(checked){
        jQuery(this).parent().addClass('selected').removeClass('not_selected');
       }else{
        jQuery(this).parent().addClass('not_selected').removeClass('selected');
       }                        
    });
});
于 2013-07-23T08:11:06.160 に答える
0

クラスセレクターを使用しているため、複数のクリックがトリガーされています。not余分な要素を除外するために使用する必要があります:

jQuery("div.checkbox_wrapper :not('div.checkboxdiv')").on('click', function(e){
    jQuery(this).parent()
    .toggleClass('not_selected selected')

});

ここにFIDDLEがあります。

于 2013-07-23T08:22:29.663 に答える