1. ホーム
  2. javascript

[解決済み] jQuery checkbox checked state changed event

2022-03-14 05:01:49

質問

チェックボックスがチェックされた/チェックされていないときに、クライアント側でイベントが発生するようにしたいのですが。

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

基本的には、ページ上のすべてのチェックボックスについて発生させたいのです。クリック時に発火し、状態をチェックするこの方法で大丈夫でしょうか?

もっときれいなjQueryの方法があるはずだと思うのですが。どなたか解決策をご存知ですか?

どのように解決するのですか?

へのバインド change イベントの代わりに click . しかし、チェックボックスがチェックされているかどうかを確認することは、おそらくまだ必要でしょう。

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

<ストライク にバインドすることの主な利点は change イベントよりも click イベントは、チェックボックスのクリックがすべて状態を変化させるとは限らないからです。チェックボックスの状態を変化させるイベントだけを捕捉したい場合は、適切な名前の change イベントを使用します。 コメントで再掲載

また、私が使っている this.checked これは、DOM要素のプロパティに直接アクセスする方が短くて速いという理由によるものです。

編集 (コメント参照)

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

$(":checkbox")

または 属性と同じ セレクタを使用します。

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