2009-05-13 20 views
168

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

+0

tampoco la función jQuery '.focusout()' que es ligeramente diferente de 'blur()' http://api.jquery.com/focusout/, citando el documento 'Esto es distinto del evento blur porque es compatible con la detección de la pérdida de foco en los elementos descendientes (en otras palabras, es compatible con el evento de burbujeo)) ' –

Respuesta

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

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

+0

Extraño. Estoy intentando desenfocar() antes de que la ventana pierda el foco para que, cuando regrese, el área de texto no esté seleccionada de manera predeterminada. No parece funcionar :( –

+0

algo así como $ ('ventana'). Desenfoque (función() { $ ('# textarea'). Desenfoque(); }); –

+0

tal vez necesite desenfocar el área de texto en el foco de la ventana entonces? – Geoff

6

Supongo que busca .focusout()

+8

-1 'focusout' solo se activa después de que una entrada ya está comenzando a perder el foco. El interlocutor quiere poner un elemento en ese estado, por lo que un manejador de devolución de llamada no le hará ningún bien https://developer.mozilla.org/en-US/docs/Web/Reference/Events/ focusout http://api.jquery.com/focusout/ – buley

+0

Estaba buscando este método y este fue el primer resultado de google para "jquery select unfocus" –

-10

Así que usted puede hacer esto

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

probarlo y dar retroalimentación

+8

Desactivará el área de texto, no la desenfocará. – Kurotsuki

8

Sobre la base de su pregunta , Creo que la respuesta es cómo gatillo de una falta de definición, no sólo (o incluso) establece el evento:

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

Esta respuesta tiene más sentido para mí. Quería saber cómo desmarcar o hacer que mi entrada de texto no esté enfocada. Sabía que existía .blur() pero realmente no entendía la sintaxis correcta para este uso. +1 – Partack

+4

Sin parámetros, '.blur()' es un atajo para '.trigger (" blur ")' http://api.jquery.com/blur/ – andreszs

0

Esto funciona para mí:

// 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) {} 
}); 
Cuestiones relacionadas