チェックボックスがオン/オフになったときにクライアント側でイベントを発生させたい:
$('.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']")