Закрытие меню при отведении мыши
Есть вот такая вот кнопка, которая открывает скрытый 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, как вариант...
<!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>
|
ksa,
спасибо работает, но с багом: когда открывается меню и листать вниз по пунктам и вывести за пределы области мышь, то все норм, но если навести мышь на пункт меню, а потом повести мышей влево или вправо, вот здесь и баг - меню не закрывается и дальше не знает как себя вести, то откроется, то закроется. |
Цитата:
|
Цитата:
http://jsfiddle.net/3448m/1/ разницу посмотрите на http://api.jquery.com/mouseleave/ там внизу есть тестовый пример |
ksa,
может из-за браузера, Pavel M. спасибо, действительно работает без проблем. |
Цитата:
|
ksa,
в хроме работает через раз |
| Часовой пояс GMT +3, время: 19:31. |