Я пытаюсь показать контейнер, если поле ввода получает фокус и - это реальная проблема - скрыть контейнер, если фокус потерян. Есть ли противоположное событие для фокуса jQuery?
Пример кода:
<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>
И то, что я хотел бы сделать, это что-то вроде этого:
$('#filter').focus_lost(function() {
$('#options').hide();
});
Как это:
источник
blur
?Используйте «размытие»: http://docs.jquery.com/Events/blur#fn
источник
событие размытия: когда элемент теряет фокус.
Событие focusout: когда элемент или любой элемент внутри него теряет фокус.
Поскольку внутри элемента фильтра ничего нет, в этом случае будут работать как размытие, так и фокусировка.
jsfiddle with blur: http://jsfiddle.net/yznhb8pc/
jsfiddle с фокусом: http://jsfiddle.net/yznhb8pc/1/
источник
Если «Прохладные параметры» скрыты от вида до того, как поле будет сфокусировано, то вы захотите создать его в JQuery, а не в DOM, чтобы любой, кто использует программу чтения с экрана, не видел ненужной информации. Почему они должны слушать это, когда мы не должны видеть это?
Таким образом, вы можете настроить переменные следующим образом:
а затем добавить (или предварительно) на фокус
а затем удалить, когда фокус заканчивается
источник