Задать вопрос
@maiskiykot
Free coder

Как скрыть элемент при потере фокуса?

Есть скрипт autocomplete на чистом js. Все нормально работает, но есть нюанс - поле списка создается через элемент li, который, в случае отсутствия нажатия (выбора) остается на экране. Как простейшим способом заставить его скрываться при потере фокуса - переход на другой элемент? Можно даже по таймауту. Ниже часть кода, создающая поле списка.
container.style.display = "none";

        var list = JSON.parse(jsonStr);

        var ul = document.createElement("ul");

        for (var i = 0; i < list.length; i++ ) {
            var li = document.createElement("li");
            li.dataset.value = list[i]["value"];
            li.innerHTML = list[i]["caption"];
            ul.appendChild(li);
        }
        container.replaceChild(ul, container.firstChild);
        container.style.display = "block";
  • Вопрос задан
  • 592 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@artkhromov
Простейший способ повесить mouseup на document.
Если речь идет о tabfocus, то тогда нужно смотреть в сторону событий focus и blur.
Почитать можно тут: https://learn.javascript.ru/focus-blur#события-foc...
Ответ написан
Комментировать
@maiskiykot Автор вопроса
Free coder
Пока что с помощью querySelectorAll() выбрал все li и заглушил. Получилось, что через 5 секунд просто все гаснет. Вопрос не закрываю, но скрыть получилось хотя бы по таймауту.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект