Esiste un metodo unfocus jQuery?


193

Come posso sfocare un'area di testo o un input? Non sono riuscito a trovare un $('#my-textarea').unfocus();metodo?


inoltre non la funzione jQuery .focusout()che è leggermente diversa da blur() api.jquery.com/focusout , citando il 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,

Risposte:


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

Documentazione su: http://api.jquery.com/blur/


Strano. Sto provando a sfocare () prima che la finestra perda lo stato attivo in modo che quando torno, l'area di testo non sia selezionata per impostazione predefinita. Non sembra funzionare :(
Alec Smart,

qualcosa come $ ('finestra'). blur (function () {$ ('# textarea'). blur ();});
Alec Smart,

forse hai bisogno di sfocare l'area di testo sul fuoco della finestra allora?
Geoff,

7
potrebbe essere che stai tentando di associare l'evento prima che il DOM venga caricato. Prova a mettere il codice nel gestore pronto della pagina in questo modo: $ (documento) .ready (funzione () {$ ('# textarea'). Blur ()})

funziona alla grande con $('#textarea').bind('blur', function() ...)anche
Fedir RYKHTIK

10

Sulla base della tua domanda, credo che la risposta sia come innescare una sfocatura , non solo (o addirittura) impostare l'evento:

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

Questa risposta ha avuto più senso per me. Volevo sapere come deselezionare o rendere sfocato il mio input di testo. Sapevo che .blur () esisteva, ma non capivo davvero la sintassi corretta per questo utilizzo. +1
Partack,

7
Senza parametri, .blur()è una scorciatoia per .trigger("blur") api.jquery.com/blur
andreszs

7

Indovina che stai cercando .focusout()


10
-1 focusoutviene attivato solo dopo che un input è già stato avviato per perdere la messa a fuoco. L'interrogante vuole mettere un elemento in quello stato, quindi un gestore di callback non gli farà nulla di buono developer.mozilla.org/en-US/docs/Web/Reference/Events/focusout api.jquery.com/focusout
buley

Stavo cercando questo metodo e questo è stato il primo risultato di Google per "jquery select unfocus"
desiderio di macchina il

0

Questo funziona per me:

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

0

Mi piace il seguente approccio in quanto funziona per tutte le situazioni:

$(':focus').blur();

-12

Quindi puoi farlo

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

provalo e dai un feedback


11
Disabiliterà l'area di testo, non la sfocerà.
Kurotsuki,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.