Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   не срабатывают события (https://javascript.ru/forum/css-html-internet-explorer/20762-ne-srabatyvayut-sobytiya.html)

UpJump 16.08.2011 18:04

не срабатывают события
 
Всем привет! Я думаю всем известно, что в 9-ом ишаке есть поддержка канвы и что бы её получить нужно указать доктайп <!doctype html>. Но при таком раскладе на 7-ом и 6-ом ишаке начинаются чудеса. Вот код:
<!DOCTYPE HTML>

<html>
<head>
<style>
#div{
	border:#000;
	border:solid;
	width:100px;
	height:100px;
	position:absolute;
	}
</style>
</head>
<body>
<div id="div"></div>
<script type="text/javascript">

var div = document.getElementById('div');
div.attachEvent('onclick',f)
function f(){
	alert('!');	
}

</script>
</body>
</html>
Событие срабатывает только при клике на рамке. Если создать див без рамки, то вообще ничего не произойдет. Глюк начинается после присваивания position: absolute. Короче намучался:) . Народ кто знает как выкрутиться? Или может есть возможность указать два доктайпа?

Amphiluke 16.08.2011 20:51

В старых IE блоки без фона ведут себя, как «дырявые». Задайте фон блоку.

UpJump 16.08.2011 22:31

это понял я понял. но критично необходимо что бы блок был дырявым а так же что бы была возможность абсолютно позиционировать этот же блок + оставить поддержку для канвы у 9-ого ишака.

Kolyaj 16.08.2011 22:59

Выставьте ему фон и сделайте его (элемент, не фон) прозрачным.

UpJump 16.08.2011 23:59

насколько мне известно в спецификации css есть только transparent и он спасает только в ie7, однако в ie6 толку ноль.

Magneto 17.08.2011 00:50

Для IE используйте CSS-правило:
filter:alpha(opacity=100)

opacity - значение от 0 (полная прозрачность) до 100 (без прозрачности)

devote 17.08.2011 02:09

Цитата:

Сообщение от UpJump
спасает только в ie7, однако в ie6 толку ноль.

Боже, не порали забыть уже ie6 ? Лично я давно его не поддерживаю

UpJump 17.08.2011 13:13

Magneto,Kolyaj, спасибо. помогло.
Цитата:

filter:alpha(opacity=100)
для шестого ишака как оказалось нужно указывать
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0)

+ небольшие танцы с бубном.


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