Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2011, 20:45
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

Закрытие меню при отведении мыши
Есть вот такая вот кнопка, которая открывает скрытый div:
<input type="button" class="butprof" value="Меню"> 
 
<div class="menu_body">

<ul class="pro" >
<li><a href="#"> Добавить видео</a></li>
<li><a href="#"> Мой профиль</a></li>
<li><a href="#"> Cообщения (0)</a></li>
<li><a href="#"> Выйти</a></li>
</ul>
</div>


И сам скрипт, который ее открывает
<script type="text/javascript">
$(document).ready(function () { 
$("div.menu_body li:even").addClass("alt"); $('.butprof').click(function () { 
$('div.menu_body').slideToggle('medium'); });
});
</script>


Так вот мне нужно, чтобы при отведении мыши от открытого меню оно закрывалось, делал вот так:
$('ul.pro').mouseout(function () {
$('div.menu_body').hide(); });


Меню сразу закрывается при отведении от 1 пункта меню, а мне нужно от всей области, помогите исправить.

Последний раз редактировалось bohdantheone, 23.12.2011 в 21:53.
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2011, 21:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от bohdantheone
помогите исправить
Потрудись сделать полный тестовый пример, а не это Лего...
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2011, 21:52
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

вот
http://jsfiddle.net/bohdantheone/3448m/
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2011, 23:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

bohdantheone, как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.menu_body { 
	display:none; 
	padding:5px;
	width:154px; 
	margin-left:2px;
	border: 1px solid;
}
</style>
<script type="text/javascript">
$(document).ready(function () { 
	$("div.menu_body li:even").addClass("alt"); 
	$('.butprof').click(function () { 
		$('div.menu_body').slideToggle('medium'); 
	});
	$('.pro').mouseover(function () {
		$('.menu_body').unbind('mouseout');
		$('.menu_body').mouseout(function () {
			var e=event.target||event.srcElement;
			if ($(e).parents('.menu_body').length==1) {
				return
			};
			$('div.menu_body').hide(); 
			$('.menu_body').unbind('mouseout');
		});
	});
});
</script>
</head>
<body>
<input type="button" class="butprof" value="Меню"> 
<div class="menu_body">
	<ul class="pro" >
		<li><a href="#"> Добавить видео</a></li>
		<li><a href="#"> Мой профиль</a></li>
		<li><a href="#"> Cообщения (0)</a></li>
		<li><a href="#"> Выйти</a></li>
	</ul>
</div>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 24.12.2011, 00:25
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

ksa,
спасибо работает, но с багом: когда открывается меню и листать вниз по пунктам и вывести за пределы области мышь, то все норм, но если навести мышь на пункт меню, а потом повести мышей влево или вправо, вот здесь и баг - меню не закрывается и дальше не знает как себя вести, то откроется, то закроется.
Ответить с цитированием
  #6 (permalink)  
Старый 24.12.2011, 10:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от bohdantheone
если навести мышь на пункт меню, а потом повести мышей влево или вправо, вот здесь и баг - меню не закрывается и дальше не знает как себя вести, то откроется, то закроется.
Такого "бага" на своём примере (который тут) не наблюдаю...
Ответить с цитированием
  #7 (permalink)  
Старый 24.12.2011, 11:02
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от bohdantheone
Меню сразу закрывается при отведении от 1 пункта меню, а мне нужно от всей области, помогите исправить.
используйте лучше вместо mouseout mouseleave
http://jsfiddle.net/3448m/1/

разницу посмотрите на http://api.jquery.com/mouseleave/
там внизу есть тестовый пример
Ответить с цитированием
  #8 (permalink)  
Старый 24.12.2011, 15:04
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

ksa,
может из-за браузера, Pavel M. спасибо, действительно работает без проблем.
Ответить с цитированием
  #9 (permalink)  
Старый 24.12.2011, 16:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от bohdantheone
может из-за браузера
Я смотрел в Опере и ИЕ8...
Ответить с цитированием
  #10 (permalink)  
Старый 24.12.2011, 19:43
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

ksa,
в хроме работает через раз
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установить меню на левый клик мыши softrix Элементы интерфейса 2 30.03.2011 10:31
Закрытие прозрачного div при щелчке мыши в любой его области mav1 Элементы интерфейса 8 09.02.2011 19:25
меню раскрывающееся по клику и закрывающееся при убирании мыши whizzo Элементы интерфейса 6 22.08.2010 16:12
Меню сворачивается при переводе мыши с заголовка к выпавшему содержимому EugenyK Events/DOM/Window 0 13.06.2009 17:05
Событие mouseout при наведении мыши на пункт меню WalterScott Events/DOM/Window 2 12.05.2009 22:05