Internet Explorer и проблема с тегом <select> - PullRequest
8 голосов
/ 06 августа 2009

У меня возникла следующая проблема в Internet Explorer 7/8:

У меня есть всплывающее окно, которое активируется, когда пользователь наводит указатель мыши на ссылку. Всплывающее окно представляет собой простой <div>, который содержит некоторые данные. Внутри этого тега <div> есть тег <select> с некоторыми <option> с. Я прикрепил события mouseover / mouseout к <div>, чтобы это всплывающее окно оставалось открытым, пока курсор находится над ним. Проблема возникает, когда вы нажимаете на <select>, а затем наводите курсор на любой из <option> s. Это вызывает событие mouseout тега <div> и соответственно закрывает его.

Как я могу предотвратить закрытие всплывающего окна в IE?

Ответы [ 13 ]

0 голосов
/ 12 августа 2009

вместо использования mouseout в качестве события для закрытия div, используйте mouseleave, тогда событие будет срабатывать только тогда, когда указатель покидает границу div, а не когда он перемещается на другие элементы внутри него

0 голосов
/ 06 августа 2009

В событии mouseout для div добавьте тайм-аут к элементу div, который будет скрывать div в 200 миллисекундах или около того.

Затем в событии наведения мыши для div / select и событии щелчка для select сбрасывается тайм-аут, сохраненный в элементе div.

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

0 голосов
/ 06 августа 2009

Как насчет повторного отображения div, когда мышь находится над событиями от <options> с до mouseover, равными <options> с.

Редактировать: порядок выполнения наведения мышки на опции и наведения мыши на div может вызвать проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...