bot87,
1. Скажите, вы так отступы сами ставите или поломалось при копировании? Все глаза сломал, блин.
2. Дело не в addEventListener. Дело в том, что clearTimeout в качестве параметра принимает не handler, а номер, который возвращается функцией setTimeout при установке таймера. Надо как-то так:
<head>
<style type="text/css">
div {
width: 100px;
height: 100px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="block"></div>
<script>
var id; // Завели глобальную переменную
block = document.getElementById('block')
handler = function(){
id = setTimeout( /*получили номерок*/
function(){
block.style.backgroundColor='red'
},
2000
)
}
handler2 = function(){clearTimeout(id)} //использовали номерок
block.addEventListener('mouseover', handler, false)
block.addEventListener('mouseout', handler2, false)
</script>
</body>