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.