Estoy tratando de mostrar un contenedor si un campo de entrada obtiene el foco y, ese es el problema real, ocultar el contenedor si se pierde el foco. ¿Hay un evento opuesto para el enfoque de jQuery?
Algún código de ejemplo:
<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>
Y lo que me gustaría hacer es algo como esto:
$('#filter').focus_lost(function() {
$('#options').hide();
});
Me gusta esto:
fuente
blur
?Utilice "desenfoque": http://docs.jquery.com/Events/blur#fn
fuente
evento de desenfoque: cuando el elemento pierde el foco.
evento de enfoque: cuando el elemento, o cualquier elemento dentro de él, pierde el foco.
Como no hay nada dentro del elemento de filtro, tanto el desenfoque como el enfoque funcionarán en este caso.
jsfiddle con desenfoque: http://jsfiddle.net/yznhb8pc/
jsfiddle con focusout: http://jsfiddle.net/yznhb8pc/1/
fuente
Si las 'Opciones geniales' están ocultas de la vista antes de que el campo esté enfocado, entonces querrá crear esto en JQuery en lugar de tenerlo en el DOM para que cualquiera que use un lector de pantalla no vea información innecesaria. ¿Por qué deberían tener que escucharlo cuando no tenemos que verlo?
Para que pueda configurar variables de esta manera:
y luego anexar (o anteponer) en foco
y luego eliminar cuando termine el foco
fuente