Задать вопрос
@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";
  • Вопрос задан
  • 596 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@artkhromov
Простейший способ повесить mouseup на document.
Если речь идет о tabfocus, то тогда нужно смотреть в сторону событий focus и blur.
Почитать можно тут: https://learn.javascript.ru/focus-blur#события-foc...
Ответ написан
Комментировать
@maiskiykot Автор вопроса
Free coder
Пока что с помощью querySelectorAll() выбрал все li и заглушил. Получилось, что через 5 секунд просто все гаснет. Вопрос не закрываю, но скрыть получилось хотя бы по таймауту.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы