| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| спасибо |