2009-05-13 15 views
168

Wie kann ich ein Textfeld oder eine Eingabe unfokussieren? Ich konnte keine $('#my-textarea').unfocus(); Methode finden?Gibt es eine jQuery-Unfokus-Methode?

+0

auch die jQuery-Funktion nicht '.focusout()', dass etwas anders aus 'blur()' http://api.jquery.com/focusout/, zitiert das Dokument 'Dies unterscheidet sich vom Unschärfereignis dadurch, dass es das Erkennen des Fokusverlusts auf untergeordnete Elemente unterstützt (mit anderen Worten, es unterstützt Ereignisblasen)) ' –

Antwort

301
$('#textarea').blur() 

Dokumentation bei: http://api.jquery.com/blur/

+0

Seltsam. Ich versuche zu verwischen(), bevor das Fenster den Fokus verliert, so dass wenn ich zurückkomme, der Textbereich nicht standardmäßig ausgewählt ist. Scheint nicht zu funktionieren :( –

+0

etwas wie $ ('window'). Blur (funktion() { $ ('# textarea'). Blur(); }); –

+0

vielleicht musst du den textbereich verschwimmen lassen auf Fensterfokus dann? – Geoff

6

Raten Sie suchen .focusout()

+8

-1 'focusout' wird nur ausgelöst nachdem eine Eingabe bereits begonnen hat, den Fokus zu verlieren, möchte der Fragesteller ein Element in diesen Zustand setzen, damit ein Callback-Handler ihm nichts tut https://developer.mozilla.org/en-US/docs/Web/Reference/Events/ Fokussierung http://api.jquery.com/focusout/ – buley

+0

Ich war auf der Suche nach dieser Methode und das war das erste Google-Ergebnis für "jquery wählen unfocus" –

-10

So können Sie tun dies

$('#textarea').attr('enable',false) 

es versuchen und geben Feedback

+8

Es wird den Textbereich deaktivieren, nicht unfokussieren. – Kurotsuki

8

Basierend auf Ihre Frage Ich glaube, die Antwort ist, wie zu Auslöser eine Unschärfe, nicht nur (oder sogar) den Event:

$('#textArea').trigger('blur'); 
+0

Diese Antwort ergab mehr Sinn für mich. Ich wollte wissen, wie ich die Hervorhebung unleserlich machen oder meine Texteingabe unkonzentriert machen kann. Ich wusste, dass .blur() existiert, aber ich habe die richtige Syntax für diese Verwendung nicht wirklich verstanden. +1 – Partack

+4

Ohne Parameter ist '.blur()' eine Abkürzung für '.trigger (" blur ")' http://api.jquery.com/blur/ – andreszs

0

Dies funktioniert für mich:

// Document click blurer 
$(document).on('mousedown', '*:not(input,textarea)', function() { 
    try { 
     var $a = $(document.activeElement).prop("disabled", true); 
     setTimeout(function() { 
      $a.prop("disabled", false); 
     }); 
    } catch (ex) {} 
});