Получить HTML-элемент, в котором произошел щелчок мышью? - PullRequest
19 голосов
/ 03 марта 2011

В javascript я хотел бы иметь возможность определить элемент на HTML-странице, в которой происходит щелчок мышью.Обратите внимание, что к элементам не будет прикреплен прослушиватель событий.

В основном: курсор где-то на странице, пользователь щелкает мышью, захватывает событие щелчка мыши, получает элемент, в котором произошел щелчок.Возможно ли это?

Один из подходов, о которых я подумал, - это получить координаты x, y события click, выполнить итерацию по DOM, получить позиции для каждого элемента и найти самый внутренний элемент, содержащий click.событие.Хотя это звучит немного скучно - поэтому мне было интересно, есть ли другой способ.

Ответы [ 2 ]

17 голосов
/ 03 марта 2011

http://www.quirksmode.org - очень хороший сайт, который многое объясняет о событиях.

Специально для вашего вопроса: Свойства события - Какой элемент HTML является целью события? .

В Internet Explorer вы можете получить элемент из объекта event с помощью event.srcElement [документы] и во всех других браузерах с помощью event.target [документы] .

Также см. Обходной путь «Ошибка Safari» в примере, на который я ссылался (хотя я не знаю, существует ли он и / или в какой версии Safari).

5 голосов
/ 03 марта 2011

Попробуйте event.target . На этой странице есть пример, который показывает, как его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...