.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, время: 02:37. |