简单的JQuery Accordion菜单:默认打开第二个

时间:2013-05-30 17:14:27

标签: jquery jquery-ui-accordion

我使用简单的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>

1 个答案:

答案 0 :(得分: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 } class始终应用于<a>。如果您希望将其应用于<li>的另一个同级元素,请将选择器更改为$('#side_menu li .selected + ul').show();,这可以更加通用。