Отслеживание щелчка мыши
Недавно задался таким вопросом:
К примеру, на странице есть один див. Можно ли отследить куда был сделан щелчок мыши - по диву или в остальную область браузера? Например: щелчок по диву - вывод сообщения "Щелкнул по див" (как это реализовать мне ясно :) ), щелчок по остальной части окна браузера - вывод сообщения "Щелкнул не по диву" (это неизвестно!). Сначала хотел отслеживать щелчок по координатам, ибо известно где див находится. Но дивов ведь может быть несколько и использовать координаты будет проблематично. Подойдет ли тут какая-нибудь модификация window.onclick? Или есть что-то другое? |
Более простой способ: все тот же e.stopPropagation, о котором тебе уже известно, вызываемый в обработчике для div-а.
Более сложный способ: берешь (e.target || e.srcElement) и, перебирая parentNode-ы, сравниваешь div с каждым parentNode. Если наткнулся на свой div, значит клик по div-у, если дошел до body значит вне div-а. У более сложного способа плюс в том, что можно обойтись одним обработчиком вместо двух. |
Спасибо большое! Выберу второй путь, ибо опыт с первым путем не особо удачный =)
Нашел пример (правда работает только в IE) - http://dunaevv1.narod.ru/koords.htm Буду работать над кроссбраузерностью. |
Часовой пояс GMT +3, время: 11:32. |