Как заставить mouseover распространяться ещё и на вложенные элементы?
Опять здрасти :)
Вот hover распространяется на элемент к которому он, так сказать, применяется и на вложенные элементы... А если использовать mouseover то выпадающее меню не правильно работат, вот часть кода:
$(function (){
$('.drop_menu').live('mouseover', function () { if ($(this).find('ul').css('display') == 'none') $(this).find('ul').slideDown(300) } );
$('.drop_menu').live('mouseout', function () { if ($(this).find('ul').css('display') != 'none') $(this).find('ul').slideUp(200) } );
});
меню закрывается, когда мышь перемещаешь на список: <div class="box drop_menu">Пусто<ul><li><a href="#">text</a></li><li>text</li></ul></div> css:
.drop_menu {
overflow: hidden;
cursor: pointer;
}
.drop_menu ul {
display: none;
z-index: 1;
position: absolute;
list-style: none;
margin: 0px;
}
.drop_menu ul li a {display: block;}
|
Хоть пошлите меня в правильном направлении куда нить кто нить, почитать чё нить...
|
Используйте:
mouseenter mouseleave |
Цитата:
|
Какое никакое но всё таки нашёл описание:
Microsoft создали 2 новых события mouseenter и mouseleave. Эти события имеют такое же поведение как mouseover и mouseout. Единственно отличие - это то, что события не "перепрыгивают" на дочерние элементы. |
Меню теперь нормально работает (IE7, Chrome и Opera1010), заменил строчку:
$('.drop_menu').live('mouseout', function () { if ($(this).find('ul').css('display') != 'none') $(this).find('ul').slideUp(200) } );
На эту:
$('.drop_menu').live('mouseleave', function () { if ($(this).find('ul').css('display') != 'none') $(this).find('ul').slideUp(200) } );
Но работает на новом Jquery 1.4a2, на 1.3 молчит :) |
|
| Часовой пояс GMT +3, время: 20:34. |