Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > onmouseover |
Автор: iff 7.3.2012, 14:33 |
Как сделать так, что-бы он не вызывался при наведении на дочернии элементы? |
Автор: 502 7.3.2012, 14:50 | ||
может родительские? |
Автор: iff 7.3.2012, 15:07 | ||
http://www.quizful.net/post/javascript_mouse_events
Этого должно не порисходить. |
Автор: 502 7.3.2012, 15:16 |
почему это? Добавлено через 3 минуты и 25 секунд хотя, да, согласен |
Автор: Evghenusi 7.3.2012, 18:45 |
если родительский элемент заранее известен, то к примеру проверяя имя класса, тега ну или айди к примеру. |
Автор: iff 7.3.2012, 19:11 |
Конечно известен (напрмер div), к ниму прикреплено onmouseover. У него есть дочернии например 2 картинки. Так вот при переходи указателя мыши с одной картинки на другую происходит onmouseover, а я хочу что-бы оно происходило только при наведении непосредственно на этот див, а при наведении на его дочернии элементы - нет. |
Автор: Evghenusi 7.3.2012, 19:53 | ||
iff, и что тебя смущает? почему не проверять имя тега?
|
Автор: Amphiluke 7.3.2012, 20:00 |
iff, ну так ведь вы сами привели ссылку с ответом на свой вопрос. Получаете при помощи relatedTarget/fromElement объект, с которого переместилась мышь. Если объект содержится внутри целевого элемента (проверяется перебором цепи родительских объектов), то значит, указатель движется в пределах этого вашего целевого контейнера, а не переместился на него извне. |
Автор: Evghenusi 7.3.2012, 20:09 |
перед тем как оставил сообщение, тоже читал, но мне кажентся "перебор цепи родительских объектов" будет излишен, либо я что-то упускаю ![]() |
Автор: Amphiluke 7.3.2012, 20:14 |
Это наиболее универсальный способ (есля я тоже ничего не упускаю). Простая проверка на имя тега работает ровно до тех пор пока не появится дочерний div. Привязка по id элемента, получаемого через target/srcElement возможна не всегда (например, нет доступа к HTML-разметке) |
Автор: Evghenusi 7.3.2012, 20:20 |
я ранее сказал, что можно и по имени класса...хотя ладно, упираться рогами не буду ![]() Amphiluke, пардоньте за глупый вопрос, а как перебирать? ![]() |
Автор: Amphiluke 7.3.2012, 20:33 | ||||
Ну, к примеру так:
Кстати, этот пример демонстрирует, почему необходимо именно перебирать родительские элементы в цикле, а не просто проверять parentNode |
Автор: iff 8.3.2012, 15:21 |
спасибо |