.hide() для всех потомков и их потомков
Друзья,
пытаюсь сделать меню с бесконечной вложенностью и всё бы хорошо, но понадобилось прикрутить таймер, чтобы меню не закрывалось сразу после покидания мышки пределов UL LI. И тут началось. Код: var openedmenu = 0; function hideUlLi() { openedmenu.fadeOut(); } function menu(){ var timerId; var timerId1; $("div#nav ul li").hover( function() { window.clearTimeout(document.getElementById("timerId").value); $(this).find("ul:first").show(); }, function() { openedmenu = jQuery(this).find("ul:first"); timerId = window.setTimeout(hideUlLi,500); document.getElementById("timerId").value = timerId; }); }; $(document).ready(function() { menu(); }); Если вывести мышку за пределы открытых в этот момент ul, то по таймеру закрывается всё меню (как и должно быть), но если снова навести мышь на тот же пункт, то открываются все вложенные пункты, которые были открыты при первом наведении. Из этого я сделал вывод что необходимо в function hideUlLi() выполнить поиск всех потомков данного il (из которого выпадает следующее меню) и выполнить для каждого найденного ul - .hide(); Помогите дописать функцию function hideUlLi() чтобы она закрывала все подменю. Ну или предложите другой вариант. |
$("div#nav ul li ").children()
Выделить все элементы потомки можно так, но лучше генерируй id для каждого меню, и тогда будет примерно так. $("#someID ").children() пример можно посмотреть тут http://jquery.page2page.ru/index.php...82%D0%BE%D0%B2 |
Часовой пояс GMT +3, время: 08:05. |