Показать сообщение отдельно
  #4 (permalink)  
Старый 21.05.2011, 01:03
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Slawaq
так что-ли?
Нет. Так:
<div id="test" style="width: 400px;height:100px;background: black;">
  <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" width="336" height="76" />
</div>
<script>
/*
Функцию mouseInChildren реализовать можно и нужно (см. ниже как),
потому что она универсальна.
Но в конкретном случае я проверяю только relatedTarget и его родителя,
потому что так быстрее:)
*/
function mouseInChildren(target, relatedTarget){
  while( relatedTarget ){
    if( relatedTarget === target ) return true;
    relatedTarget = relatedTarget.parentNode;
  };
  return false;
};

var div = document.getElementById("test");
div.onmouseover = function(){
  this.style.background = 'red';
};

div.onmouseout = function(event){
  event = event || window.event
  var relatedTarget = event.relatedTarget || event.toElement;
  //if( mouseInChildren(this, relatedTarget) ) return;
  if( relatedTarget === this || relatedTarget.parentNode === this) return;
  this.style.background='black';
};
</script>
Ответить с цитированием