2011-01-14 10 views
0

Ich habe ein Eingabeelement mit einem Blur-Ereignis und ein Link-Element mit einem Klick-Ereignis. Das Problem, auf das ich stoße, ist, wenn jemand auf das Verknüpfungselement (den Klick) klickt, der Fokus auf das Eingabeelement (die Unschärfe) gelegt wird, aber die gleichzeitigen Ereignisse dazu führen, dass das Unschärfereignis nicht vollständig ausgeführt wird.jQuery, Nur Trigger "Click" nach "Blur" Hat Fully

Was ist der beste Weg, um sicherzustellen, dass das Blur Event vollständig ausgeführt wird, bevor das Click Event ausgelöst wird?

Antwort

1

Dies ist nicht der beste Weg, es zu handhaben, aber es sollte funktionieren ... Sie können versuchen, eine kurze delay() auf dem click() Ereignis.

Meine anderen Gedanken sind, dass Sie versuchen könnten, rufen Sie Ihre click() Handler aus dem Rückruf der blur(), aber ich würde damit herum basteln, um zu sehen, wie das in der Praxis funktionieren würde.

+0

mein Wissen Haken gibt keine Verzögerung() Methode in Javascript ;) –

+0

Nun, es gibt ein "jquery" -Tag auf dem Post ... –

+0

Meiner Erfahrung nach funktioniert Delay in der Warteschlange der jquery-Effekte und hat überhaupt nichts mit Ereignissen zu tun, aber ich könnte etwas verpasst haben, und wenn das der Fall ist Ich entschuldige mich :) –

0

Sie könnten in das Click-Ereignis auf der Verknüpfung einhaken und input.blur() in diesem Event-Handler aufrufen.

Am 2. Gedanken, wenn die Unschärfe nicht ausgeführt, weil der Link klicken, um eine neue Seite geladen wird, dann müssen Sie wahrscheinlich in entladen oder beforeunload Ereignisse

+0

Das ist auch eine anständige Idee. Sie könnten jedoch dort ein Problem haben, wenn Sie wissen, welche Eingabe den Fokus hatte. –

Verwandte Themen