私のアプリケーションは動的にドロップダウンを追加しました。ユーザーは必要なだけ追加できます。
私は伝統的に、jQueryのlive()
メソッドを使用して、これらのドロップダウンの1つがchange()
編集されたことを検出していました。
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
jQuery 1.7以降、これを次のように更新しました。
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
ドキュメントを見ると、これは完全に有効なはずです(そうですか?)-しかし、イベントハンドラーは起動しません。もちろん、jQuery 1.7がロードされて実行されていることなどを確認しました。エラーログにエラーはありません。
何が悪いのですか?ありがとう!
live
は実際にon
とにかく使用しているようです。そのため、live
削除されるまでレガシーコードの書き換えはまだ必要ないかもしれません。1.7.1のソースからの抜粋:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
したがって、存在しないバージョンにアップグレードしない場合はlive
、レガシーコードをすぐに更新する必要はありません。以下のために新しいコース使用してオフコードon()
の代わりとして推奨されます。この情報は、ある段階で他の誰かを助けるかもしれないと思いました。