Я пытаюсь скрыть результаты поиска, если фокус не находится на входе поиска. Я могу сделать это легко, используя .blur()
после функции .keyup()
. Моя проблема в том, что когда пользователь нажимает на результат поиска ... он все еще скрывается. Итак, я хочу сделать так, если пользователь удаляет фокус из текстового ввода и пользователь не фокусируется на результатах поиска, то только скрыть div
Скрыть результат поиска, если фокус не на входе
HTML:
<form role="search" autocomplete="off">
<div>
<input id="searchInput" type="text" placeholder="Search">
</div>
<div class="search_main">
<div id="sresult" tabindex="0"></div>
</div>
</form>
JQuery:
$("#searchInput").keyup(function(e) {
var q = $(this).val();
if (q !== undefined && q.length > 0) {
$("#sresult").show(150);
$("#sresult").html("No results");
} else {
$("#sresult").hide(150);
}
}).blur(function(e) {
$("#sresult").hide(150);
});
Из-за отсутствия такого условия n вы указали, чтобы сохранить видимый результат поиска. –
Вы должны удалить функцию размытия размытия, если хотите оставаться видимым и определить другую вещь, когда она должна скрываться. –