jQuery チェックボックスのチェック状態変更イベント 質問する

jQuery チェックボックスのチェック状態変更イベント 質問する

チェックボックスがオン/オフになったときにクライアント側でイベントを発生させたい:

$('.checkbox').click(function() {
  if ($(this).is(':checked')) {
    // Do stuff
  }
});

基本的に、ページ上のすべてのチェックボックスでこれを実行したいのですが、クリック時に実行して状態を確認するこの方法は問題ありませんか?

もっとクリーンな jQuery の方法があるはずだと思っています。誰か解決策を知っていますか?

ベストアンサー1

changeの代わりに イベントにバインドしますclick。ただし、チェックボックスがオンになっているかどうかを確認する必要がある可能性があります。

$(".checkbox").change(function() {
    if(this.checked) {
        //Do stuff
    }
});

change イベントではなくイベント にバインドする主な利点 click は、チェックボックスをクリックしただけでは状態が変わるわけではないことです。チェックボックスの状態を変えるイベントだけをキャプチャしたい場合は、適切な名前の change イベントが必要です。 コメントは編集済み

また、this.checked要素を jQuery オブジェクトにラップするのではなく、jQuery メソッドを使用していることに注意してください。これは、DOM 要素のプロパティに直接アクセスする方が短くて高速だからです。

編集(コメントを参照)

すべてのチェックボックスを取得するには、いくつかのオプションがあります。:checkbox疑似セレクタ:

$(":checkbox")

または、属性が等しいセレクタ:

$("input[type='checkbox']")

おすすめ記事