IE は、矢印を使用してメニューをナビゲートするときに、選択メニューで change イベントを発生させます。これは、IE 以外のブラウザーには当てはまりません。非 IE ブラウザーは、オプションをクリックしたとき、または矢印でアイテムに移動した後に Enter キーを押したときにのみ、イベントを発生させます。これを回避する方法プログラムはありますか?キーでナビゲートするときにイベントが発生しないようにする必要があります。
2 に答える
0
可能であれば、独自の変更イベントリスナーを追加し、そのように処理します。詳細をすべて知らないと言うのは難しいですが、イベントをキャンセルすることはできないので、最初にそこを見てみます。そのアプローチ以外では、IEは値が変更されたときにイベントを発生させるため、それについてできることはあまりありません。IEの変更/変更へのリンクは次のとおりです。それは実際にドキュメントでこれを言います。
このイベントを呼び出すには、次のいずれかを実行します。
- マウスまたはキーボードのナビゲーションを使用して、選択したオブジェクトで別のオプションを選択します。
- テキスト領域のテキストを変更してから、オブジェクトの外に移動します。
悪臭を放ちますが、選択フィールドを使用するときに考慮する必要があるものの1つです。
于 2013-03-19T18:54:14.750 に答える
0
私の状況でうまくいった解決策は次のとおりです。
blur
イベントの代わりにイベントにバインドしchange
ます。
これにより、ページを最初にロードしたときにイベントが発生し、バインディングのコードを有効にする必要があるという別の問題がselect
発生しましchange
た。blur
バインドしchange
てトリガーすると、blur
大規模な再帰が発生しました。解決策は、起動時に実行される init 関数を作成することでした。
initData : function(){
var t = this,
formSelects = 'select';
jQuery.each(formSelects, function(){
// do my code here that normally happens in blur.
})
}
于 2013-03-20T19:37:09.867 に答える