J'essaie d'afficher un conteneur si un champ de saisie obtient le focus et - c'est le problème réel - de cacher le conteneur si le focus est perdu. Y a-t-il un événement opposé pour le focus de jQuery?
Un exemple de code:
<input type="text" value="" name="filter" id="filter"/>
<div id="options">some cool options</div>
<script type="text/javascript">
$('#options').hide();
$('#filter').focus(function() {
$('#options').appear();
});
</script>
Et ce que je voudrais faire, c'est quelque chose comme ça:
$('#filter').focus_lost(function() {
$('#options').hide();
});
Comme ça:
la source
blur
?Utilisez "flou": http://docs.jquery.com/Events/blur#fn
la source
événement flou: lorsque l'élément perd le focus.
événement focusout: lorsque l'élément, ou tout élément à l'intérieur, perd le focus.
Comme il n'y a rien à l'intérieur de l'élément filtrant, le flou et la mise au point fonctionneront dans ce cas.
jsfiddle avec flou: http://jsfiddle.net/yznhb8pc/
jsfiddle avec focusout: http://jsfiddle.net/yznhb8pc/1/
la source
Si les «Cool Options» sont masquées de la vue avant que le champ ne soit focalisé, alors vous voudrez le créer dans JQuery au lieu de l'avoir dans le DOM afin que toute personne utilisant un lecteur d'écran ne voie pas d'informations inutiles. Pourquoi devraient-ils l'écouter alors que nous n'avons pas à le voir?
Vous pouvez donc configurer des variables comme ceci:
puis ajouter (ou pré-ajouter) sur le focus
puis retirez à la fin de la mise au point
la source