1

フォーカスとホバーで外観を変更するようにスタイル設定されたアンカーのリストがあります。そして、それらがクリックされた後、それらは通常に戻るはずです。焦点を失う/ぼやける。これは Google Chrome では期待どおりに機能しますが、firefox と IE では機能せず、フォーカスされたままになります。どうしてこんなことに?

これは私のコードです: http://jsfiddle.net/8fTQs/

私の推測では、FF と IE は、アンカーがクリックされたときにページがリロードされることを期待していますが、これらは単にアンカーポイント (#; ハッシュ) を参照しているため、ページを再レンダリングしません (ただし、リロードされた場合はもちろん再レンダリングしてフォーカスを失う)。

これをどのように回避しますか?

ありがとうございました!

編集:適切なdoctypeを設定しました。

4

3 に答える 3

1

キーボード ナビゲーション:focusを支援するスタイルはまだ必要なので、削除しない方がよいでしょう。

Chrome はクリック後にフォーカスを保持しませんが、FF と IE は保持します。できることは、動作を正規化することですが、クリックされるたびにリンクをぼかすことですが、クリックするだけです!

単純$('a').click(function () {this.blur();})に要素をぼかします(ぼかし = フォーカスを失います)が、ブラウザー (または単に jQuery) も、Enterキーを押すと「クリック」イベントを発生させます。

したがって、迅速で汚い解決策は次のようになります。$('a').mouseup(function () {this.blur();})

于 2013-09-06T23:16:24.793 に答える
0

ページがリロードされていない場合でも、アンカーをクリックにフォーカスすることは正しい動作です。それ以降、タブナビゲーションが正しく機能します。

アンカーがクリックされている間だけスタイリングしたい場合は、:activeアンカーではなくアンカーをスタイリングしたいようです。:focus

于 2012-06-03T19:41:09.243 に答える