Помогите с раскрытием списка - JS
возникла надобность переделать многоуровневое вертикальное меню так чтобы, если в нем есть подуровень, при нажатии на элемент ссылка не срабатывала а открывался вложенный список.
Пытался реализовать таким образом $('.menu-v li').bind('click',function(event){ event.preventDefault(); if ($(this).find('ul').length) { //если в нажатом элементе есть вложенный список list_item=$(this).find('ul:first'); // берем его в обработку if (list_item.css('display')=='none') { // и заскрываем/скрываем в зависимости от состояния list_item.css('display','block'); } else { list_item.css('display','none'); } } else { alert("error"); } }); Загвоздка в том, что данная конструкция срабатывает только для первого уровня. При назатии на раскрытие второго уровня он то раскрывается, но сразу же и скрывается первый. Где я допустил ошибку, чтобы при клике обрабатывался только текущий элемент а не и дочерние. Заранее благодарю за ответ |
nvp2,
может так Выпадающее меню на jquery хороший поиск по форуму даст массу ответов для вашего случая -- и кроме скрипта желательно приводить html на котором он работает. |
Цитата:
Видоизменил пример дабы избежать перехода по ссылкам разделов и то что мне нужно)) $('document').ready(function(){ $('.menu-v li').click(function (event) { if ($(this).find('ul').length) {event.preventDefault();} $(this).parent().find("li ul:visible").slideUp() if($(this).children("ul").is(":hidden"))$(this).ch ildren("ul").slideDown() ; event.stopPropagation(); }); }); |
а саму html-ку глянуть мона??
|
Часовой пояс GMT +3, время: 05:26. |