.on()
関数がajaxのロード時に1回/2回だけイベントを発生させるのは奇妙だと思います。
サンプルコードは次のとおりです。
$(document).on('click', '.cbxCheckAll', function(e) {
alert(this.checked);
$(this).parents('table').find('input.cbxDelete:checkbox').attr('checked', this.checked);
});
シナリオ: 基本的に、ユーザーのリストを含むドロップダウンがあります。ドロップダウンでユーザーを選択すると、選択したユーザーの情報が ajax を介して div に即座に読み込まれます。次に、そのdivに、「すべて選択」オプションを備えた複数のチェックボックスがあります。
「すべて選択」をクリックすると、すべてのチェックボックスが選択されました。別のクリックで、チェックボックスがオフになりました。まあ、うまくいきました。しかし、もう一度(3回目)クリックすると、もう機能しません。2回目のクリックでしか機能しないようです。
お気づきかもしれませんがalert()
、「すべて選択」チェックボックスの値を表示する があります。クリックするたびに発火するようですが(3番目、4番目など)、チェック/チェック解除部分はそうではありません。
最近、Jquery のバージョンを最新 (1.9) に更新しました。機能のあるver(1.7)を使っていましたが、最新で削除されたので.live()
変更しました。.on()
.live()
前もって感謝します!