2010-04-02 7 views

Antwort

27

Die .focus()-Methode für ein jQuery-Wrapped-Element wird an das onfocus-Ereignis gebunden, wenn eine Funktion als erster Parameter übergeben wird oder Ereignishandler mit keinem Parameter ausgelöst werden.

Ich bin mir nicht sicher, warum Sie versuchen, das zu tun, was Sie tun möchten, aber wenn Sie versuchen, das gerade aktive Element zu verwischen, egal welches Element es ist, können Sie verwenden:

if ("activeElement" in document) 
    document.activeElement.blur(); 

Dies wird jedoch nicht empfohlen, da dies die Tabbing-Reihenfolge zurücksetzt und Benutzer mit Tastaturnavigation möglicherweise verärgert.

+2

Am besten ein Check-in wie 'if ('activeElement' im Dokument)' zuerst, da es nicht in allen Browsern unterstützt wird. – bobince

+0

@bobince: Hinzugefügt als Vorsichtsmaßnahme. 'activeElement' wird in den neuesten Versionen von Firefox, Opera, WebKit und den IEs 6 bis 8 unterstützt und ist auch Teil der HTML5-Spezifikation, daher wird es hoffentlich auch weit verbreitet sein. –

1

$().method() löst die Listener aus, die dieser Methode zugeordnet sind. Wenn Sie Funktionen für dom-Elemente aufrufen müssen, indexieren Sie das jQuery-Objekt.

heißt

$(document)[0].focus() 

Obwohl, warum Sie nicht nur document.focus verwenden würde, ist wahrscheinlich eine Frage wert zu beantworten.

Verwandte Themen