Existe um método de desfocagem jQuery?

193

Como posso desfocar uma área de texto ou entrada? Não consegui encontrar um $('#my-textarea').unfocus();método?

Alec Smart
fonte
também não é a função jQuery, .focusout()que é um pouco diferente de blur() api.jquery.com/focusout , citando o 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 Seja o

Respostas:

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

Documentação em: http://api.jquery.com/blur/

RichieHindle
fonte
Estranho. Estou tentando desfocar () antes que a janela perca o foco para que, quando eu voltar, a área de texto não seja selecionada por padrão. Parece não funcionar :(
Alec Smart
algo como $ ('window'). blur (function () {$ ('# textarea'). blur ();});
Alec inteligente
talvez você precise desfocar a área de texto no foco da janela?
Geoff
7
pode ser que você esteja tentando vincular o evento antes do carregamento do DOM. Tente colocar o código no manipulador de pronto da página como esta: $ (document) .ready (function () {$ ( '# textarea') blur ().})
funciona muito bem com $('#textarea').bind('blur', function() ...)também
Fedir RYKHTIK 22/03/12
10

Com base na sua pergunta, acredito que a resposta é como acionar um desfoque , não apenas (ou mesmo) definir o evento:

 $('#textArea').trigger('blur');
sonjz
fonte
Essa resposta fez mais sentido para mim. Eu queria saber como destacar ou deixar minha entrada de texto sem foco. Eu sabia que .blur () existia, mas realmente não entendia a sintaxe correta para esse uso. +1
Partack
7
Sem parâmetros, .blur()é um atalho para .trigger("blur") api.jquery.com/blur
andreszs
0

Isso funciona para mim:

// 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
fonte
0

Gosto da seguinte abordagem, pois funciona para todas as situações:

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

Então você pode fazer isso

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

experimente e dê feedback

ri muito
fonte
11
Desabilitará a área de texto, não a desfocará.
precisa saber é o seguinte