2009-12-03 5 views
12

abwählen kann, ist ein bisschen schwierig zu erklären, aber ich werde versuchen.Wie man eine Verbindung mit jquery

Immer wenn jemand auf einen Ankerlink klickt, erscheint vorübergehend ein gepunkteter Rahmen. Wenn Sie beispielsweise auf das Stackoverflow-Logo oben auf dieser Seite klicken, wird es vorübergehend von einer gepunkteten Linie umgeben. Da die Seite aktualisiert wird, verschwindet das gepunktete Feld.

Aber mit Ajax, wird der Link nicht aktualisiert, daher bleibt die gepunktete Box darauf. Wie Sie diese gepunktete Box entfernen. Wenn Sie irgendwo auf die Seite klicken, verschwindet das gepunktete Feld. Wie es mit jquery oder auf andere Weise tun.

Antwort

18

Um es un-wählen Sie lösen das blur Ereignis auf dem Ankerelement, zum Beispiel:

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

element.blur() den Tastaturfokus aus dem aktuellen Elemente entfernen.

3

Diese Box ist der Fokus. Sie könnten versuchen, dies zu tun:

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

so:

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

keine Notwendigkeit, jQuery hineinzubringen: 'this.blur()' funktioniert auch. – nickf

10

Verwenden Sie jQuery oder JavaScript nicht, dies zu beheben. Sie können es entfernen, indem Sie direktes CSS verwenden. Nur vorsichtig sein, da es eine Usability Funktion ist:

in Ihrem CSS-Stylesheet (alle Elemente):

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

In CSS (gezielter Link):

#mylink:focus { outline: 0; } 

Das Problem mit der blur() Lösungen ist das Fokus-Rechteck flackert an und dann sofort aus.

+1

+1 Wirklich nette Ansatz, der einzige Nachteil ist, dass es nicht funktioniert für IE '<=' 7 (und IE8 im compat-Modus) – CMS

+1

@CMS Sie sind völlig richtig. Ach wie schade. Ich benutze diesen Code sehr und habe nie versucht, zu überprüfen, wie er in IE lief. -1 für mich :) –

+0

Nice one! Wusste nicht, dass wir das nur mit CSS machen könnten. –

Verwandte Themen