¿Existe un método de desenfoque jQuery?

193

¿Cómo puedo desenfocar un área de texto o una entrada? No pude encontrar un $('#my-textarea').unfocus();método?

Alec Smart
fuente
tampoco es la función jQuery .focusout()que es ligeramente diferente de blur() api.jquery.com/focusout , citando el documentoThis is distinct from the blur event in that it supports detecting the loss of focus on descendant elements (in other words, it supports event bubbling)
Adrien Be

Respuestas:

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

Documentación en: http://api.jquery.com/blur/

RichieHindle
fuente
Extraño. Estoy tratando de desenfocar () antes de que la ventana pierda el foco para que cuando regrese, el área de texto no esté seleccionada por defecto. Parece que no funciona :(
Alec Smart
algo así como $ ('ventana'). blur (function () {$ ('# textarea'). blur ();});
Alec Smart
¿quizás necesites desenfocar el área de texto en el foco de la ventana entonces?
Geoff
77
es posible que esté intentando vincular el evento antes de que se cargue el DOM. Intente poner el código en el controlador listo de la página de esta manera: $ (documento) .ready (function () {$ ('# textarea'). Blur ()})
funciona muy bien $('#textarea').bind('blur', function() ...)también
Fedir RYKHTIK
10

Según su pregunta, creo que la respuesta es cómo activar un desenfoque , no solo (o incluso) configurar el evento:

 $('#textArea').trigger('blur');
sonjz
fuente
Esta respuesta tenía más sentido para mí. Quería saber cómo dejar de resaltar o hacer que mi entrada de texto fuera de foco. Sabía que .blur () existía pero realmente no entendía la sintaxis correcta para este uso. +1
Partack
77
Sin parámetros, .blur()es un acceso directo para .trigger("blur") api.jquery.com/blur
andreszs
7

Supongo que estás buscando .focusout()

Adam Boostani
fuente
10
-1 focusoutse dispara solo después de que una entrada ya ha comenzado a perder el foco. El interlocutor quiere poner un elemento en ese estado, por lo que un controlador de devolución de llamada no le servirá de nada developer.mozilla.org/en-US/docs/Web/Reference/Events/focusout api.jquery.com/focusout
buley
Estaba buscando este método y este fue el primer resultado de Google para "jquery select unfocus"
máquina anhelando el
0

Esto funciona para mi:

// 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) {}
});
d'Artagnan Evergreen Barbosa
fuente
0

Me gusta el siguiente enfoque, ya que funciona para todas las situaciones:

$(':focus').blur();
Javid
fuente
-12

Entonces puedes hacer esto

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

pruébalo y da tu opinión

jajaja
fuente
11
Deshabilitará el área de texto, no lo desenfocará.
Kurotsuki el