Existe-t-il une méthode jQuery unfocus?

193

Comment puis-je détacher une zone de texte ou une entrée? Je n'ai pas trouvé de $('#my-textarea').unfocus();méthode?

Alec Smart
la source
pas non plus la fonction jQuery .focusout()qui est légèrement différente de blur() api.jquery.com/focusout , citant le docThis 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

Réponses:

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

Documentation sur: http://api.jquery.com/blur/

RichieHindle
la source
Étrange. J'essaie de brouiller () avant que la fenêtre ne perde le focus afin que lorsque je reviens, la zone de texte ne soit pas sélectionnée par défaut. Ne semble pas fonctionner :(
Alec Smart
quelque chose comme $ ('window'). blur (function () {$ ('# textarea'). blur ();});
Alec Smart
peut-être avez-vous besoin de brouiller la zone de texte sur le focus de la fenêtre alors?
Geoff
7
peut-être que vous essayez de lier l'événement avant le chargement du DOM. Essayez de mettre le code dans le gestionnaire prêt de la page comme ceci: $ (document) .ready (function () {$ ('# textarea'). Blur ()})
fonctionne très bien avec $('#textarea').bind('blur', function() ...)aussi
Fedir RYKHTIK
10

Sur la base de votre question, je pense que la réponse est de savoir comment déclencher un flou , pas seulement (ou même) définir l'événement:

 $('#textArea').trigger('blur');
sonjz
la source
Cette réponse avait plus de sens pour moi. Je voulais savoir comment annuler la mise en évidence ou rendre ma saisie de texte non focalisée. Je savais que .blur () existait mais je ne comprenais pas vraiment la syntaxe correcte pour cet usage. +1
Partack
7
Sans paramètres, .blur()est un raccourci pour .trigger("blur") api.jquery.com/blur
andreszs
0

Cela fonctionne pour moi:

// 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
la source
0

J'aime l'approche suivante car elle fonctionne pour toutes les situations:

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

Alors tu peux faire ça

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

essayez-le et donnez votre avis

lol
la source
11
Cela désactivera la zone de texte, ne la déconcentrera pas.
Kurotsuki