проблема с mouseover
Есть два <div>. Оба абсолютно позиционированы. Один вложен в другой и по размерам меньше (внутренний меньше внешнего). Обработчик mouseover привзян к внешнему div'у. Таким образом, при наведении курсора на внешний или внутренний див возникает событие mouseover внешнего div'а. При уходе курсора за границы внешнего div генерируется событие onmouseout внешнего div.
Работает везде, кроме IE (в моем случае версия 7). В IE как только курсор заходит на внутренний div, генерируется onmouseout Для внешнего div. Как это обойти? |
|
Спасибо за ссылку! Очень полезный материал!
Однако у меня проблема не в последовательности обработки событий, а в том что в IE при переходе курсора на внутренний дочерний элемент с внешнего срабатывает обработчик onmouseout этого внешнего элемента, а мне это не нужно. |
Опытным путем выяснил что mouseout при переходе с родительского на дочерний элемент все-таки не возникает. Почему происходит на долю секунды вызов обработчика mouseout с последующим возвратом к предыдущему состоянию не выяснил. Эта проблема только в 7 IE, в 9 все ок. В 8 не пробовал. Видимо просто глюк.
|
отслеживать с какого элемента был переход и куда. fromElement, toElement- для ие ,relatedTarget -для всех остальных
|
Спасибо! Пришлось поковыряться во всем этом, но зато разобрался и теперь все работает даже в IE7. Вложенный див был пустой, но растягивался прозрачным PNG, задал ему id и в обработчике mouseout сравнивал toElement с этим id.
Зато теперь другая забавная ошибка. если быстро мышкой "дёргнуть" с родительского дива вниз, возникает ошибка: Uncaught exception: TypeError: Cannot convert 'sourceTo' to object :) Неужели не успевает схватить какой-нибудь объект из части страницы?? Экранирую эту ерунду проверкой sourceTo и вес работает. |
Upd
В sourceTo записывал toElement(relatedTarget) |
Может быть, вам поможет использование пары mouseleave\mouseenter вместо mouseout\mouseover?
Если я правильно поняла проблему, это должно помочь. Сделала маленький пример, попробуйте: http://jsfiddle.net/UdvXc/ |
Цитата:
Цитата:
|
Хм... Проверила на всякий случай ещё раз в Chrome и FF7. Вроде работает.
|
Часовой пояс GMT +3, время: 05:29. |