mouseleave запускается в IE7, когда курсор все еще находится над элементом - PullRequest
1 голос
/ 28 декабря 2010

Я использую mouseleave, чтобы закрыть всплывающее меню.Это работает правильно во всех моих целевых браузерах, кроме IE7.В IE7 срабатывание mouseleave срабатывает, когда курсор явно находится над целевым элементом.Я выделил основной контейнер для всплывающего окна желтым цветом ниже.Если я расположу мышь, как показано на рисунке, и переместу ее немного (все еще в пределах желтого цвета), отпускание мыши сработает на содержащем желтый элемент.Есть идеи о том, что здесь происходит?Что может вызвать срабатывание mouseleave на элементе, когда курсор все еще был виден внутри него?

alt text

Посмотрев ближе, я вижу, что событие mouseleave срабатывает даже когда курсорнаходится над непрозрачной частью всплывающего окна.

alt text

Ответы [ 4 ]

3 голосов
/ 28 декабря 2010

прозрачный ярлык.

быстрое исправление - фон 1x1.gif.

другим вариантом будет время срабатывания мыши по времени

2 голосов
/ 28 декабря 2010

Событие mouseleave запускается каждый раз, когда JavaScript перемещается из элемента в другой элемент, который не находится под зарегистрированным элементом в иерархии страниц. Возможно ли, что браузер считает, что вы переходите на элемент, который составляет физически существующее меню под всплывающим окном (то есть имеет более низкое значение z)?

1 голос
/ 01 февраля 2011

В моем случае приведенный ниже код решил проблему с указанием мыши в IE7:

"position" : "relative";
"z-index" : 2000;

У моего тега было фоновое изображение GIF, но это не удалось. Только установив это css, я получил точное поведение.

0 голосов
/ 23 сентября 2013

Мне удалось явно определить фон.

Прозрачный gif 1x1 также работает, если это не так.

.content {/ * IE-8: mouseleave / mouseenter срабатывает, когда вы попадаете в фон, поэтому это должно быть явно объявлено* / фон: белый;}

...