200 votes

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

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

0 votes

Pas non plus la fonction jQuery .focusout() qui est légèrement différent de blur() api.jquery.com/focusout en citant le doc This 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)

345voto

RichieHindle Points 98544
$('#textarea').blur()

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

0 votes

Étrange. J'essaie de blur() avant que la fenêtre ne perde le focus afin que lorsque je revienne, la zone de texte ne soit pas sélectionnée par défaut. Cela ne semble pas fonctionner :(

0 votes

Quelque chose comme $('window').blur(function() { $('#textarea').blur() ; }) ;

0 votes

Peut-être faut-il rendre la zone de texte floue au moment du focus de la fenêtre ?

11voto

sonjz Points 926

D'après votre question, je pense que la réponse est comment déclencher un flou et non pas seulement (ou même) définir l'événement :

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

0 votes

Cette réponse m'a semblé plus logique. Je voulais savoir comment déséclairer ou rendre floue ma saisie de texte. Je savais que .blur() existait mais je ne comprenais pas vraiment la syntaxe correcte pour cette utilisation. +1

8 votes

Sans paramètres, .blur() est un raccourci pour .trigger("blur") api.jquery.com/blur

7voto

iMad Points 263

Je suppose que vous cherchez .focusout()

11 votes

-1 focusout n'est déclenché que lorsqu'une entrée a déjà commencé à perdre le focus. Si l'auteur de la question veut placer un élément dans cet état, un gestionnaire de rappel ne lui sera d'aucune utilité. developer.mozilla.org/fr/US/docs/Web/Reference/Events/focusout api.jquery.com/focusout

0 votes

Je cherchais cette méthode et c'était le premier résultat de Google pour "jquery select unfocus".

2voto

Javid Points 1467

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

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

0voto

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X