Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.04.2011, 11:35
Интересующийся
Отправить личное сообщение для Marv Посмотреть профиль Найти все сообщения от Marv
 
Регистрация: 09.08.2010
Сообщений: 19

mouseout на вложенном элементе
Осваиваю jQuerry. Начал вроде бы с простого меню с fadein/fadeout эффектом. При наведении на ссылку верхнего уровня появляется div вложенного меню. И соответственно при mouseout на этом div'е, он исчезает.
Проблема заключается в том, что mouseout срабатывает и при переходе от div'а к пунктам списка-потомка. То есть div id="par1_ch" появляется, а затем, когда я навожу курсор на пункты вложенного в него меню, он снова исчезает. Что я сделал не так?
$(document).ready(function () {
	$("a.lv1.parent").mouseover(function () {
		$('#' + this.id + '_ch').fadeIn('fast');
	});
	$("div.submenu").mouseout(function () {
		$(this).fadeOut('fast');
	});
});

<ul>
	<li>
		<a class="lv1 parent" id="par1" href="/">aaaaaaaaaaa</a>
		<div id="par1_ch" class="submenu">
			<ul>
				<li><a href="/">bbbbbbbbbbb</a></li>
				<li><a href="/">bbbbbbbbbbb</a></li>
			</ul>
		</div>
	</li>
	<li><a class="lv1" href="/">aaaaaaaaaaa</a></li>
</ul>
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2011, 13:51
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

$(document).ready(function () {
	$("a.lv1.parent").mouseover(function () {
		$(this).next("div.submenu").fadeIn("fast");
	});
	$("div.submenu").mouseout(function (event) {
		if ( $(event.relatedTarget).closest("div.submenu").length !== 0 )
			return;
		$(this).fadeOut('fast');
	});
});
Ответить с цитированием
  #3 (permalink)  
Старый 25.04.2011, 14:11
Интересующийся
Отправить личное сообщение для Marv Посмотреть профиль Найти все сообщения от Marv
 
Регистрация: 09.08.2010
Сообщений: 19

Спасибо огромное, буквально за полчаса до вашего отвта додумался до closest. Но у вас намного изящнее)
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2011, 10:33
Интересующийся
Отправить личное сообщение для Marv Посмотреть профиль Найти все сообщения от Marv
 
Регистрация: 09.08.2010
Сообщений: 19

И еще такой вопрос: если несколько раз быстро навести курсор, то fadein и fadeout продолжают выпоняться несколько раз подряд. Как можно прервать анимацию при новом срабатывании?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mouseover, mouseout - не распространяется на дочерние элементы barmaley Events/DOM/Window 31 01.06.2017 08:52
Как правильно задать ID в создаваемом элементе ? Indiana Events/DOM/Window 15 31.10.2010 16:15
Запуск функции если mouseout frolvict Общие вопросы Javascript 10 27.04.2010 17:16
mouseout: Определить дочерние элементы Papa Общие вопросы Javascript 3 03.02.2010 20:29
Событие mouseout при наведении мыши на пункт меню WalterScott Events/DOM/Window 2 12.05.2009 22:05