Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отслеживание щелчка мыши (https://javascript.ru/forum/events/3547-otslezhivanie-shhelchka-myshi.html)

MaxPayne 01.05.2009 12:43

Отслеживание щелчка мыши
 
Недавно задался таким вопросом:

К примеру, на странице есть один див. Можно ли отследить куда был сделан щелчок мыши - по диву или в остальную область браузера?
Например: щелчок по диву - вывод сообщения "Щелкнул по див" (как это реализовать мне ясно :) ), щелчок по остальной части окна браузера - вывод сообщения "Щелкнул не по диву" (это неизвестно!).

Сначала хотел отслеживать щелчок по координатам, ибо известно где див находится. Но дивов ведь может быть несколько и использовать координаты будет проблематично.

Подойдет ли тут какая-нибудь модификация window.onclick? Или есть что-то другое?

Riim 01.05.2009 12:57

Более простой способ: все тот же e.stopPropagation, о котором тебе уже известно, вызываемый в обработчике для div-а.
Более сложный способ: берешь (e.target || e.srcElement) и, перебирая parentNode-ы, сравниваешь div с каждым parentNode. Если наткнулся на свой div, значит клик по div-у, если дошел до body значит вне div-а.

У более сложного способа плюс в том, что можно обойтись одним обработчиком вместо двух.

MaxPayne 01.05.2009 13:20

Спасибо большое! Выберу второй путь, ибо опыт с первым путем не особо удачный =)

Нашел пример (правда работает только в IE) - http://dunaevv1.narod.ru/koords.htm
Буду работать над кроссбраузерностью.


Часовой пояс GMT +3, время: 11:32.