October 15, 2010
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 イベントが起動されるようになります。
使い方
jquery.js 、 jquery.exchangeselect.js を読み込みます。
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.exchangeselect.js"></script>
適用したい select 要素に対し、exChangeSelect() メソッドを実行します。
$('select.example').exChangeSelect(function(evt){ //処理を記述する });
Demo(jQuery 1.3.2) Demo(jQuery 1.4.2) Demo(jQuery 1.4.3rc2)
ダウンロード
こちらからどうぞ
トラックバック - http://d.hatena.ne.jp/cyokodog/20101015/exchangeselect01
リンク元
- 108 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=jquery+iframe+関数
- 80 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLL_jaJP393JP393&q=position:fixed++ajax
- 73 http://www.google.co.jp/url?sa=t&rct=j&q=jquery select change イベント 動かない時がある&source=web&cd=2&sqi=2&ved=0CCQQFjAB&url=http://d.hatena.ne.jp/cyoko
- 67 http://www.google.co.jp/url?sa=t&rct=j&q=jquery select イベント&source=web&cd=4&ved=0CEYQFjAD&url=http://d.hatena.ne.jp/cyokodog/20101015/exchangeselect01&ei=jBOETpjrNO-QiQeekMyqDw&usg=AFQjCNH6y7PiP6SmzC9q9f1cjh
- 63 http://d.hatena.ne.jp/cyokodog-memo/20100928/1285675913
- 54 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&q=jquery ブラウザサイズ heightを設定&aq=f&aqi=&aql=&oq=&gs_rfai=
- 52 http://pipes.yahoo.com/pipes/pipe.info?_id=0kJqAOKW3RGniq6n1ZzWFw
- 52 http://www.google.co.jp/url?sa=t&rct=j&q=jquery+exchange&source=web&cd=2&ved=0CDAQFjAB&url=http://d.hatena.ne.jp/cyokodog/20101015/exchangeselect01&ei=Ykz5TqS6CaHImQWmi8mRAg&usg=AFQjCNH6y7PiP6SmzC9q9f1cjhQQoiIxTA
- 50 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CD8QFjAC&url=http://d.hatena.ne.jp/cyokodog/20101015/exchangeselect01&ei=GuRBT43fGseNmQW85P3QBw&usg=AFQjCNH6y7PiP6SmzC9q9f1cjhQQoiIxTA
- 49 http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=jquery+ブラウザ+高さ



