2013-05-30 3 views
0

Я использую простое меню саксофонов jquery. Но я хочу, чтобы второй элемент в списке был открыт по умолчанию, а не: первыйПростое меню аккордеона JQuery: открытое второе по умолчанию

Как это можно сделать?

function initMenu() 
{ 
    $('#menu ul').hide(); 
    $('#menu ul:first').show(); 
    $('#menu li a').click(function() 
    { 
      var checkElement = $(this).next(); 
      if((checkElement.is('ul')) && (checkElement.is(':visible'))) 
      { 
       return false; 
      } 
      if((checkElement.is('ul')) && (!checkElement.is(':visible'))) 
      { 
       $('#menu ul:visible').slideUp('normal'); 
       checkElement.slideDown('normal'); 
       return false; 
      } 
    }); 
} 
$(document).ready(function() {initMenu();}); 

Я также интересно, если я мог бы использовать выбранный класс, чтобы сделать это более динамичным:

<div id="work_menu"> 
    <ul id="side_menu" class="nav_categories">  
     <li> 
      <a href="celebratory-use">Celebratory Use</a> 
      <ul> 
       <li><a href="platters">Platters</a></li> 
       <li><a href="celebratory-servers">Servers</a></li> 
      </ul> 
     </li> 
     <li><a class="selected" href="daily-use">Daily Use</a> 
      <ul> 
      <li><a href="bowls">Bowls</a></li> 
      <li><a href="butter-dishes">Butter Dishes</a></li> 
      <li><a href="mugs">Mugs</a></li> 
      </ul> 

     </li>  </ul> </div> 
+0

любой jsfiddle.net? –

+0

http://jsfiddle.net/eastwooddesign/FbtMj/ –

ответ

1

Попробуйте $('#menu ul:eq(1)').show(); вместо $('#menu ul:first').show();, это относится .show() ко второму элементу ul элемент в #menu. Без HTML трудно понять, является ли это правильным решением.

Чтобы сделать это так, что ul приходит после того как деталь, учитывая .selected класс показано, изменение $('#menu ul:eq(1)').show(); к $('#side_menu li > a.selected + ul').show();, так долго, как .selected класс всегда применяется к <a>. Если вы хотите применить его к другому элементу-брату из <li>, измените селектор на $('#side_menu li .selected + ul').show();, что немного более обобщаемо.

+0

, что на самом деле работает, но чтобы сделать меню немного более динамичным, есть способ использовать выбранный класс и сделать это шоу ul? см. обновленный html-код выше –

+0

@PeterEastwood Пожалуйста, ознакомьтесь с изменениями, внесенными мной в мой ответ. –

+0

спасибо andrew! очень ценим! –

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