Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onmouseout вызывается неправильно. (https://javascript.ru/forum/events/8926-onmouseout-vyzyvaetsya-nepravilno.html)

lancer 21.04.2010 00:03

onmouseout вызывается неправильно.
 
Вопрос в том, почему когда мышь выходит за границы id2(темнокоричневый), то срабатывает onmouseout на id1, ведь наооборот мышь находится на нем.

Как видите, разобрался с тем, что если мышь наводиться на темно-коричневый, то бледно коричневый следует включать заново, так как считается, что мышь хоть и на дочернем, но не на родителе.

Но вот с вопросом выше ни могу найти ни каких объяснений.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Тест</title>	
	<meta http-equiv="Content-Script-Type" content="text/javascript" />
	<style>
		*{text-align:center;}
		#id1{background:#f8d698; width:200px; height:200px}
		#id2{background:#d08600; width:100px; height:100px;}
	</style>

	
</head>

<body>
	<div id="id1" onmouseout="document.getElementById('id1').style.display='none';">
		id1
		<div id="id2" onmouseover="document.getElementById('id1').style.display='block';">id2</div>
	</div>
</body>
</html>

micscr 21.04.2010 07:11

Изучи как события происходят в js на примере:
<div id="id1" onmouseout="alert('id1 out')" onmouseover="alert('id1 over')">
        id1
        <div id="id2" onmouseover="alert('id2 over')" onmouseout="alert('id2 out')">id2</div>

Т.е. у родителя срабатывает на детях. Чтобы это побороть надо анализировать в коде источник события. (event.srcElement || event.target)

subzey 21.04.2010 08:41

http://javascript.ru/tutorial/events...dok-i-chastota

lancer 21.04.2010 14:18

Спасибо огромное. Все работает.


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