Событие при наведение на потомка
Столкнулся с проблемой и по всем законам понимаю, что так и должно быть, но мне-то нужно по другому))
<div id='helper'></div> <div onmouseOver='event_over(this);'> <ul onmouseOver='event_over(this);'> <li onmouseOver='event_over(this);'>элемент</li> </ul> </div> function event_over(object) { document.getElementById('helper') = object.tagName; } при наведение на DIV - всё впорядке, но во при наведение на вложенный в него ul - в helper всё равно показывает div... как обойти сию запарку? (мне нужно, чтобы событие срабатывало на максимально глубоко вложенном элементе) если сделать по другому чуть и поставить function event_over(object) { document.getElementById('helper') += object.tagName; } то видно, что событие сработало сначала на ULБ а потом на DIV ...7 как сделать, чтобы при срабатываение на UL оно уже не срабатывало на DIV? |
Смотрите target (для IE — srcElement) события. Он будет возвращать тот элемент, на который кликнули.
<html> <head> <title> Test </title> </head> <body> <div> <span> Кликни на меня! </span> </div> <a href="javascript://"> Или на меня </a> <script type="text/javascript"> document.onclick = function ( e ) { alert( (e || window.event)[-[1,] ? 'target' : 'srcElement'] ); }; </script> </body> </html> |
Цитата:
evt.returnValue = false; Для остальных: evt.stopPropagation(); Когда срабатывает на UL. |
Часовой пояс GMT +3, время: 07:52. |