イベント委任を使用してDOMの下位のイベントをリッスンしていますが、選択ボックスのonchangeイベントでは機能しません。 onchangeイベントはDOMを伝播またはバブルアップしますか?
グーグルは決定的な答えを見つけることに失敗しました。
仕様による 、change
、submit
、reset
はバブルし、focus
とblur
はバブルしない。
この動作は、IE <9、つまり、change
、submit
、reset
を除くすべてのWebブラウザーで適切に実装されます。 IE> = 9。
古いIEバージョンでのjQueryの回避策については、 https://stackoverflow.com/a/4722246/227299 を参照してください。
JQuery 1.4以降では、IEを含むすべてのブラウザで変更イベントが発生します。
$('div.field_container').change(function() {
// code here runs in all browers, including IE.
});
しばらくこれに対処していませんが、前回対処したとき、Firefoxは<SELECT>
要素のイベントを認識しましたが、IE6は<OPTION>
タグのイベントのみを認識したことを覚えています。覚えてる限り。
IE7はその時出ていませんでした。
したがって、これが当てはまる場合は、イベントハンドラーをインラインで記述せず、代わりにDOM対応に適用する方が理にかなっています。これにより、汚染された反復コードが大量に発生する可能性がなくなります。