2012-01-10 17 views
3

私は、キーボード操作の多くを必要とするWebアプリケーションを開発しています。IE7がtabindexを持たない要素にtabindex = "0"を追加するのはなぜですか?

私はタブキーナビゲーションの制御を撮影したと私は、次の例のjQueryの選択を持つすべての要素を選択します。

elements = $("div").find("[tabindex]:visible").not("[tabindex='0'], :disabled"); 

だから私は目に見えない要素、無効になっている要素を選択するか、または0のtabindex属性を持っていません

これはFirefox、Chrome、IE8 +でうまくいきます。残念ながら、このプロジェクトではIE7のサポートが必要です。 IE7は、私たちによって設定されたtabindexを持たない要素にtabindex = "0"を追加するようです。elementsにIE7のtabindex = "0"の要素が含まれています。

IE7がこのように動作する理由を知っている人は誰でも知っています。

これは、ほぼ800

編集含まelementsはIE7を除く他のすべてのブラウザでは300以上の要素が含まれている私たちの最悪のシナリオ、で悪いパフォーマンスヒット原因:私が管理している

をtabindex = "0"の要素をIE7にも含まないセレクタを記述してください。

elements = $("div").find("[tabindex][tabindex!=0][tabindex!=-1]:visible:not(:disabled)"); 
+0

歴史マイクロソフトの一点でのそのほかのWebとどんながらくたIEで実行さを気にしませんでした「理由」はおそらくありません。実際のtabindex要素と、IE7をサポートしたい場合には、回避策として自分自身を割り当てた要素を区別するために、CSSクラスのようなマーカーを追加する必要があります。 –

+0

そうですね。しかし、私はIE7でも動作するセレクタを書くことができたので、CSSクラス(私たちの最後の退屈なリゾートでした)を追加する必要はありません。 –

答えて

関連する問題