0

私は現在使用しています

$("ul li").click(function () {
  $(this).toggleClass("checked");
         var $checkbox = $(this).find(':checkbox');
         $checkbox.prop('checked', !$checkbox[0].checked);
});

チェックボックスでクラスを切り替えます。しかし、フォームを送信してからブラウザに戻ると、チェックボックスにチェックを入れたボックスが表示されますが、クラスはありません。上記を展開して、クラスがチェックされているかどうかを確認する方法はありますか?

HTML

<ul>
  <li class="noclass">
     <input type="checkbox" name="name" />
  </li>
</ul>
4

4 に答える 4

1

チェックボックスの状態に応じてクラスを切り替えるように関数を再構築します。次に、一度トリガーして初期化します。

于 2012-04-19T07:42:20.017 に答える
1
 $(function(){
     $('input:checkbox').each(function() {
         var self = $(this);

        if(self.attr('checked')) {
            self.addClass('checked');
        }
    });
});

$('input:checkbox').live('change', function() {
    $(this).toggleClass('checked');
});

それはあなたの問題を解決します:)

これは親にクラスを適用します

$(function(){
     $('input:checkbox').each(function() {
         var self = $(this);

        if(self.attr('checked')) {
            self.parent().addClass('checked');
        }
    });
});

$('input:checkbox').live('change', function() {
    $(this).parent().toggleClass('checked');
});
于 2012-04-19T07:50:49.167 に答える
0

チェックボックスをクリックしたときにのみクラスを変更しているようです。チェックされているチェックボックスのクラスを指定したかどうかを確認してください。

それはこのようなものでなければなりません

 #id .checked{
background:#ff0000;
}
于 2012-04-19T07:43:12.320 に答える
0
$("ul li").bind('click launch', function () {
    var bool = $(this).attr('checked');
    $(this).toggleClass("checked", bool);
    $('input:checkbox').attr('checked', bool);
}).trigger('launch');
  • 最初にブール値を取得して、バインドされた入力がtrueor かどうかを確認しfalseます。
  • 次に、#id がチェックされているかどうかに応じてクラスを切り替えます
  • 次に、#id がチェックされているかどうかに応じて、すべてのチェックボックスをチェックします
  • これを、クリック時に発生するイベントと、「launch」という作成したイベントにバインドします。
  • 最後に、「起動」をトリガーして、この関数が実行され、ページの読み込み時にも発生するようにします

編集:
あなたが探しているものかもしれない別のバージョンを作りました

$("ul li").bind('click launch', function () {
    var checkboxes = $(this).find('input:checkbox');
    var bool = Boolean(checkboxes.find(':checked').size());

    $(this).toggleClass('checked', bool);
    checkbox.prop('checked', !checkbox[0].checked);
}).trigger('launch');

基本的に、チェックボックスがオンになっているかどうかを確認し、それに応じてクラスを追加します。あなたが残りに何をしたいのかよくわからないので、単にコピーしました。

于 2012-04-19T07:56:19.707 に答える