Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите с раскрытием списка - JS (https://javascript.ru/forum/jquery/39690-pomogite-s-raskrytiem-spiska-js.html)

nvp2 08.07.2013 14:26

Помогите с раскрытием списка - 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"); 
       
      } 
    });

Загвоздка в том, что данная конструкция срабатывает только для первого уровня. При назатии на раскрытие второго уровня он то раскрывается, но сразу же и скрывается первый.
Где я допустил ошибку, чтобы при клике обрабатывался только текущий элемент а не и дочерние.


Заранее благодарю за ответ

рони 08.07.2013 14:54

nvp2,
может так Выпадающее меню на jquery
хороший поиск по форуму даст массу ответов для вашего случая -- и кроме скрипта желательно приводить html на котором он работает.

nvp2 08.07.2013 15:04

Цитата:

Сообщение от рони (Сообщение 260984)
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();

});


});

skrudjmakdak 08.07.2013 15:20

а саму html-ку глянуть мона??


Часовой пояс GMT +3, время: 05:26.