select 要素の change イベントを補正する jQuery exChange Select
先日、select 要素の値を矢印キーで変更してたら jQuery の change イベントが起動しないという事象に遭遇しました。例のごとくまた IE6 固有の問題かと思ってたのですが、念のため調べてみると Opera 以外はほとんどのブラウザで再現してしまいました。
という訳で select 要素で正しく change イベントを起動させる jQuery プラグインを作ってみました。
矢印キー change イベント対応ブラウザの調査
select 要素の値を矢印キーで変更した場合に、change イベントが正しく起動されるブラウザを、jQuery のバージョン別に調べてみました。結果は以下の通り。
jQuery 1.3.2 |
jQuery 1.4.2 |
jQuery 1.4.3rc2 |
|
---|---|---|---|
IE6 | ○ | × | × |
IE7 | ○ | × | × |
IE8 | ○ | × | × |
Firefox 3.6.10 | × | × | × |
Safari 5.02 | × | × | × |
Chrome 6.0.472.63 | × | × | × |
Opera 10.63 | ○ | ○ | ○ |
Opera 以外はほぼ壊滅状態でした。何故か IE では jQuery のバージョンが 1.3.2 だとちゃんと動きました。
Demo(jQuery 1.3.2) Demo(jQuery 1.4.2) Demo(jQuery 1.4.3rc2)
上記リンクで試せますので、矢印キーで値を変更してみてください。change イベントが行われると変更後の値が select 要素の下部に追加されていきます。
jQuery exChange Select の機能概要
ブラウザの種類、バージョンに関わらず、矢印キー/マウスクリックによる値変更のいずれの場合でも正しく change イベントが起動されるようになります。