Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите пожалуйста, очень странный глюк (https://javascript.ru/forum/misc/20749-pomogite-pozhalujjsta-ochen-strannyjj-glyuk.html)

popov654 16.08.2011 08:19

Помогите пожалуйста, очень странный глюк
 
Здравствуйте, это опять я. Вечно у меня что-то отваливается и не работает)

Я продолжаю тему про анимацию. На этот раз проблема в корне иная.
Вчера я заметил, что моя подложка, на которую подвешен обработчик мыши, не прозрачна. Это очень негативно сказывалось на восприятии (представьте, плавающей панели нет, а белый прямоугольник на её месте живёт). Я добавил в CSS правило строку background: none;
Потом я занялся отладкой файла в Mozilla, так как там панель вообще было мышью "не достать". С Firefox я проблему решил (кому интересно как, смотрите здесь http://javascript.ru/forum/misc/2071...vizheniya.html). И тут обнаружил, что всё перестало работать в IE.
Я естественно подумал, что что-то запорол и убил около часа на поиск источника проблемы (самое забавное заключалось в том, что изменения, которые я производил помимо основной модификации, которая никак не могла навредить (проверял), касались исключительно HTML-разметки. CSS для панели и подкладки я вообще не трогал.

Каково же было моё удивление, когда оказалось, что всему виной та самая строчка, обеспечивающая прозрачность! Причём в остальных браузерах всё ОК, а без неё вроде бы никак. Почему-то элемент без фона не ловит ни mouseOver, ни mouseEnter! И только в IE. Подскажите, как лечить. IE 7 версии.

P.S. Быть может, в IE8 такой проблемы нет? Кто-нибудь в курсе?

popov654 16.08.2011 08:21

-----------------

popov654 16.08.2011 08:29

**************

devote 16.08.2011 09:45

хм... все дело в том что ИЕ юзает attachEvent который нельзя контролировать, тоесть при использовании addEvenetListener третьем параметром можно указать как поступать событию, всплывать или погружаться.. Проблема в том что в отличии от addEventListener, attachEvent не имеет подобного параметра, и указать что делать событию нельзя... 3-й параметр – этап события. Если false, то обработчик события будет выполняться на этапе всплытия события (если существуют вложенные элементы с тем же обработчиком события), если true - то на этапе перехвата события. Контролировать это с attachEvenet к сожалению нельзя, обычно третий параметр всегда смело можно использовать со значением false.

Kolyaj 16.08.2011 09:57

Цитата:

Сообщение от popov654
Подскажите, как лечить. IE 7 версии.

Вместо background: none поставить opacity: 0. Как выставить opacity в IE в интернетах легко найти.

popov654 19.08.2011 00:51

Да, в восьмёрке этого уже нет, проверял. Спасибо)

popov654 19.08.2011 01:15

В общем решил для IE использовать хак //opacity: 0;
а для остальных пришлось через JavaScript выставить)


Часовой пояс GMT +3, время: 22:22.