04.10.2008, 08:35
|
Новичок на форуме
|
|
Регистрация: 15.07.2008
Сообщений: 8
|
|
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 что-ли?
|
|
04.10.2008, 10:57
|
Флудер
|
|
Регистрация: 25.07.2008
Сообщений: 1,271
|
|
Во-первых ты не закрыл спан, во вторых ты пользуешся фремворком. w3c за фреймворки не отвечает...
|
|
04.10.2008, 11:15
|
Новичок на форуме
|
|
Регистрация: 15.07.2008
Сообщений: 8
|
|
ну спан - это я тут накидал. ща разобрался - и over & out всплывают на всех дочерних. но ёлки, в диве находится селект - я на селект навожу - всплывает mouseout на диве - почему, ведь селект внутри дива. и как отследить уход из div-a и всего его содержимого?
|
|
05.10.2008, 12:38
|
Флудер
|
|
Регистрация: 25.07.2008
Сообщений: 1,271
|
|
в браузерах (в ФФ точно) есть баги: при переходе границы елементов может всплывать аут. Так что надо писать функции с таймером: на аут ставить таймер, а на овер - отменять.
|
|
05.10.2008, 14:36
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
ZoNT,
Разве это баги? Это стандартное всплывание события.
|
|
05.10.2008, 16:21
|
Новичок на форуме
|
|
Регистрация: 15.07.2008
Сообщений: 8
|
|
вообщем-то я оставил как есть - при переходе внутри элемента к другому элементу - сначала аут срабатывает и сразу-же over над внутренним элементом - т.е. при движении он прячется и тут-же показывается - вроде не мерцает
|
|
05.10.2008, 23:40
|
Флудер
|
|
Регистрация: 25.07.2008
Сообщений: 1,271
|
|
Сообщение от Андрей Параничев
|
ZoNT,
Разве это баги? Это стандартное всплывание события.
|
естественно баги: если есть див, а в нём элемент поменьше, то при переходе див/элемент (кусор НЕ выходит за пределы дива) происходит мгновенный маусаут+маусовер дива.
|
|
09.07.2010, 16:40
|
Новичок на форуме
|
|
Регистрация: 09.07.2010
Сообщений: 2
|
|
Люди !!!! Как хорошо, что я на Вас напал .... У меня происходит примерно такая же фигня:
есть несколько вложенных друг в друга div, два из них наложенные с разными z-index для создания меню. Стоят обработчики события onmouseover и onmouseout. И вот что диагностикой обнаружено:
цвет иконки путем сокрытия иконки меняется (иконки для того, чтобы все было видно нормально при любых условиях);
вначале срабатывает onmouseover (вроде все нормально, - так и должно быть), а затем сразу же срабатывает onmouseout и этим все заканчивается. И еще: не могу поймать разницу между выходом из меню вообще (чтобы закрыть все дочерние окна) и в родительское, чтобы закрыть исходное ....
Будьте добры, разъясните непонятливому (желательно на уровне детского сада) в чем моя ошибка и как ее исправить ...
С уважением, Дмитрий
P.S. Лучше продублировать мне на почту, чтобы всем было хорошо
(мало ли потеряю адрес).
|
|
05.10.2011, 15:16
|
Интересующийся
|
|
Регистрация: 19.09.2011
Сообщений: 23
|
|
Сообщение от ZoNT
|
естественно баги: если есть див, а в нём элемент поменьше, то при переходе див/элемент (кусор НЕ выходит за пределы дива) происходит мгновенный маусаут+маусовер дива.
|
Сообщение от Андрей Параничев
|
ZoNT,
Разве это баги? Это стандартное всплывание события.
|
Меня этот вопрос тоже интересует. Столкнулся с подобной ситуацией в IE7. Если это всплывание события, то почему оно таким образом проявляется? Почему происходит моментальный вызов с возвратом mouseout, если никакие действия к генерации этого события не приводят.
Я склонен относить подобное поведение к глюку, но хочу разобраться окончательно чтобы точно знать.
|
|
05.10.2011, 15:34
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
это не глюк .дело в том что при вложенных элементах возникает событие оут у родительского при переходе на дочерний. но за счёт того что у вас обработчик на родительском и идёт всплытие -события генерируются в такой последовательности оут-всплытие события-овер.и почему пропускается оут в других браузерах это странно ,объяснение вижу только одно-вложенный контейнер пустой -а при пустых контейнерах событие как бы проваливается в нижний заполненный.и не важно родительский он или просто подложенный.прозрачность ему чуть поменяйте и проваливание отпадёт или бекграунд ему задайте
Последний раз редактировалось dmitriymar, 05.10.2011 в 15:37.
|
|
|
|