2013-12-24 3 views
0

У меня есть меню, и я хочу создать меню стиля аккордеона, используя jQuery. Проблема, с которой я сталкиваюсь, связана с jQuery.jQuery style accordion не распространяется на все неупорядоченные списки

Когда я нажимаю на любой из первых <li>, таких как первое меню, он расширяет только следующий <ul>, а не вложенный список внутри.

Как я могу изменить свой jQuery, чтобы он расширил все <ul> внутри родителя <li>?

<ul id="nav"> 
    <li><a href="#">First Menu...</a> 
    <ul> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum/a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
    <li><a href="#">Second Menu...</a> 
    <ul> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum/a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
    <li><a href="#">Third Menu...</a> 
    <ul> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
     <li>Lorem Ipsum 
     <ul> 
      <li><a href="#">Lorem Ipsum/a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
      <li><a href="#">Lorem Ipsum</a></li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
</ul> 

JQuery

$(document).ready(function(){ 
    $("#nav > li > a").on("click", function(e) { 
     if($(this).parent().has("ul")) { 
      e.preventDefault(); 
     } 

     if(!$(this).hasClass("open")) { 
      // hide any open menus and remove all other classes 
      $("#nav li ul").slideUp(350); 
      $("#nav li a").removeClass("open"); 

      // open our new menu and add the open class 
      $(this).next("ul").slideDown(350); 
      $(this).addClass("open"); 
     } 

     else if($(this).hasClass("open")) { 
      $(this).removeClass("open"); 
      $(this).next("ul").slideUp(350); 
     } 
    }); 
}); 

ответ

Смежные вопросы