tripcollor
@tripcollor

Как определить событие клика event.target элемента?

Делаю выпадающий список, при фокусе на инпут появляется dropdown, который имеет position: fixed, координаты задаются автоматически скрипт определяет положения инпута на котором произошел focus и позиционирует dropdown под ним задавая top и left. Это обязательное условие т.к инпутов на стр много а список должен быть один.

И тут такая проблема, я поставил слушатель события на весь документ и определяю event.target, те элемент по которому непосредственно был клик. Но при клике на один из элементов dropdown'а это событие срабатывает не верно и пишет что клик был произведен по всему html
Вот набросал пример, можно открыть консоль и посмотреть
https://jsfiddle.net/tripcollor/qwmg9aeh/27/

Как определить event.target при клике на один из элементов dropdown'а ?
  • Вопрос задан
  • 903 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Замените click на mousedown. А то сейчас у вас получается так: нажали на выбранный пункт, фокус с .select-list ушёл, и к тому моменту, когда вы отпускаете кнопку мыши, список уже скрылся, соответственно, клик получается по элементу, который был под списком.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Blur срабатывает раньше чем клик, дивы скрываются, и вы действительно получаете клик по <html>

Читайте также про всплытие событий
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы