Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2010, 13:46
Интересующийся
Отправить личное сообщение для ajon Посмотреть профиль Найти все сообщения от ajon
 
Регистрация: 06.06.2010
Сообщений: 25

Событие при наведение на потомка
Столкнулся с проблемой и по всем законам понимаю, что так и должно быть, но мне-то нужно по другому))

<div id='helper'></div>
<div onmouseOver='event_over(this);'>
   <ul onmouseOver='event_over(this);'>
      <li onmouseOver='event_over(this);'>элемент</li>
   </ul>
</div>


function event_over(object)
   {
   document.getElementById('helper') = object.tagName;
   }


при наведение на DIV - всё впорядке, но во при наведение на вложенный в него ul - в helper всё равно показывает div... как обойти сию запарку? (мне нужно, чтобы событие срабатывало на максимально глубоко вложенном элементе)

если сделать по другому чуть и поставить
function event_over(object)
   {
   document.getElementById('helper') += object.tagName;
   }

то видно, что событие сработало сначала на ULБ а потом на DIV ...7 как сделать, чтобы при срабатываение на UL оно уже не срабатывало на DIV?

Последний раз редактировалось ajon, 02.09.2010 в 13:49.
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2010, 14:00
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Смотрите target (для IE — srcElement) события. Он будет возвращать тот элемент, на который кликнули.

<html>
	<head>
		<title>
			Test
		</title>
	</head>
	<body>
		<div>
			<span>
				Кликни на меня!
			</span>
		</div>
		<a href="javascript://">
			Или на меня
		</a>
		<script type="text/javascript">
			document.onclick = function ( e ) {
				alert( (e || window.event)[-[1,] ? 'target' : 'srcElement'] );
			};
		</script>
	</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2010, 10:17
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от ajon
как сделать, чтобы при срабатываение на UL оно уже не срабатывало на DIV
Для ишака:
evt.returnValue = false;

Для остальных:
evt.stopPropagation();

Когда срабатывает на UL.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие onClick при нажатии пункта меню Lex4e Общие вопросы Javascript 1 25.06.2010 18:31
При выборе определенного option => событие FRIE jQuery 2 05.03.2010 11:40
постоянное повторяющееся событие при mouseover. как? greysells jQuery 2 01.02.2010 13:37
Событие mouseout при наведении мыши на пункт меню WalterScott Events/DOM/Window 2 12.05.2009 22:05
Не отрабатывает событие onmouseout при внедрении нового слоя ilshat Элементы интерфейса 3 28.07.2008 06:27