|
mouseover, mouseout - не распространяется на дочерние элементы
Штука такая:
<div style="display:inline" id="myDiv">Some Text<span style="display:none"><select..></select></div> Event.observe('myDiv', 'mouseover', this.onIn.bindAsEventListener(this)); Event.observe(this.container, 'mouseout', this.onOut.bindAsEventListener(this)); так вот в чём проблема - при наведении на текст(some text) отрабатывает mouseover - там я показываю внутренний скрытый span. Но когда я мышь увожу на этот select в спане - срабатывает mouseout!! В в3ц вроде пишет, что он mouseover, mouseout распространяется на все дочерние элементы. Собсна хотелось-бы понять, почему так и что происходит. Если событие вешается на все дочерние - то получается отрабатывает mouseout с textNode - some text что-ли? |
Во-первых ты не закрыл спан, во вторых ты пользуешся фремворком. w3c за фреймворки не отвечает...
|
ну спан - это я тут накидал. ща разобрался - и over & out всплывают на всех дочерних. но ёлки, в диве находится селект - я на селект навожу - всплывает mouseout на диве - почему, ведь селект внутри дива. и как отследить уход из div-a и всего его содержимого?
|
в браузерах (в ФФ точно) есть баги: при переходе границы елементов может всплывать аут. Так что надо писать функции с таймером: на аут ставить таймер, а на овер - отменять.
|
ZoNT,
Разве это баги? Это стандартное всплывание события. |
вообщем-то я оставил как есть - при переходе внутри элемента к другому элементу - сначала аут срабатывает и сразу-же over над внутренним элементом - т.е. при движении он прячется и тут-же показывается - вроде не мерцает
|
Цитата:
|
Люди !!!! Как хорошо, что я на Вас напал .... У меня происходит примерно такая же фигня:
есть несколько вложенных друг в друга div, два из них наложенные с разными z-index для создания меню. Стоят обработчики события onmouseover и onmouseout. И вот что диагностикой обнаружено: цвет иконки путем сокрытия иконки меняется (иконки для того, чтобы все было видно нормально при любых условиях); вначале срабатывает onmouseover (вроде все нормально, - так и должно быть), а затем сразу же срабатывает onmouseout и этим все заканчивается. И еще: не могу поймать разницу между выходом из меню вообще (чтобы закрыть все дочерние окна) и в родительское, чтобы закрыть исходное .... Будьте добры, разъясните непонятливому (желательно на уровне детского сада) в чем моя ошибка и как ее исправить ... С уважением, Дмитрий P.S. Лучше продублировать мне на почту, чтобы всем было хорошо (мало ли потеряю адрес). |
Цитата:
Цитата:
Я склонен относить подобное поведение к глюку, но хочу разобраться окончательно чтобы точно знать. |
это не глюк .дело в том что при вложенных элементах возникает событие оут у родительского при переходе на дочерний. но за счёт того что у вас обработчик на родительском и идёт всплытие -события генерируются в такой последовательности оут-всплытие события-овер.и почему пропускается оут в других браузерах это странно ,объяснение вижу только одно-вложенный контейнер пустой -а при пустых контейнерах событие как бы проваливается в нижний заполненный.и не важно родительский он или просто подложенный.прозрачность ему чуть поменяйте и проваливание отпадёт или бекграунд ему задайте
|
Часовой пояс GMT +3, время: 13:43. |
|