0

IE は、矢印を使用してメニューをナビゲートするときに、選択メニューで change イベントを発生させます。これは、IE 以外のブラウザーには当てはまりません。非 IE ブラウザーは、オプションをクリックしたとき、または矢印でアイテムに移動した後に Enter キーを押したときにのみ、イベントを発生させます。これを回避する方法プログラムはありますか?キーでナビゲートするときにイベントが発生しないようにする必要があります。

4

2 に答える 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 に答える