2009-12-03 30 views
12

説明が少し難しいですが、試してみます。jqueryを使用してリンクを選択解除する方法

誰かがアンカーリンクをクリックするたびに、一時的に周囲に点線のボックスが表示されます。 たとえば、このページの上部にあるstackoverflowロゴをクリックすると、 は一時的に点線で囲まれています。ページがリフレッシュされるため、点線のボックスは消えます。

しかし、ajaxでは、リンクが更新されないため、点線のボックスはその上に残ります。 その破線のボックスを削除する方法。ページのどこかをクリックすると、点線のボックスが消えます。 jqueryまたは他の方法でそれを行う方法。未選択することに

答えて

18

あなたは、たとえば、アンカー要素にblurイベントをトリガすることができます

$('a').click(function() { 
    this.blur(); // or $(this).blur(); 
    //... 
}); 

element.blur()現在の要素からキーボードフォーカスを削除します。

3

そのボックスが焦点です。あなたはこれをやってみてください:そう

$("#mylink").blur(); 

$("#mylink").click(function() { 
    $.ajax({...}); 
    $(this).blur(); 
    return false; 
}); 
+4

jQueryを取り込む必要はありません: 'this.blur()'も有効です。 – nickf

10

は、この問題を解決するためのjQueryやJavaScriptを使用しないでください。ストレートCSSを使用して削除することができます。それはユーザビリティ機能あるとしてだけ注意してください:あなたのCSSスタイルシートで

(すべての要素):CSSで

/* Disable all focus styles */ 
:focus { outline: 0; } 

(対象リンク):

#mylink:focus { outline: 0; } 

に問題blur()解決策は、フォーカス矩形が点滅し、すぐにオフになります。

+1

+1本当にいいアプローチですが、唯一の欠点は、IE '<=' 7(とcompatモードのIE8) – CMS

+1

@ CMSのために働くことはまったくないということです。なんとバマー?私はこのコードをたくさん使っていて、IEでどのように動作しているかを確認するのに悩まされたことはありません。 -1私のために: –

+0

いいね!私たちがCSSだけでこれを行うことができるかどうかは分かりませんでした。 –

関連する問題