0

我试图弄清楚如何在页面加载时扩展一个简单的 jQuery 垂直手风琴菜单中的特定列表项。我尝试将此添加到 jquery 以在加载时打开第一个列表项,但它似乎不起作用:

$('#nav li:first ul').show();

jQuery 的其余部分是:

<script type="text/javascript">
$(document).ready(function () {
  $('#nav > li > a').click(function(){
    if ($(this).attr('class') != 'active'){
  $('#nav li ul').slideUp();
  $(this).next().slideToggle();
  $('#nav li a').removeClass('active');
  $(this).addClass('active');
$('#nav li:first ul').show();
    }
  });
});
</script>

开发页面可以在这里查看。

谢谢!

4

4 回答 4

0

这一行:$('#nav li:first ul').show();需要与 jquery 脚本的其余部分分开。

于 2012-08-15T00:56:36.187 回答
0

您是否正在寻找类似的东西:

打开“加纳”作为它的第一个链接?

$(function(){$($('a','#nav')[0]).click();});
于 2012-08-15T00:36:54.143 回答
0

看起来它不是 jQuery Accordion,而是Adob​​e 的手风琴插件。上一句中的链接显示了 API,看起来你想使用类似的东西:

Accordion1.openPanel(index);

我使用 Chrome 开发工具进行了尝试,但没有成功,因此您可能需要确保您的标记正确。我没有太多时间来研究这个,但希望这会让你指向正确的方向。

于 2012-08-15T00:40:02.020 回答
0

您将所有内容都包含在.click()函数中。您说您希望它在页面加载时打开,但在实际单击导航项之前不会执行任何代码。

也许你所要做的就是添加一个$('#nav > li > a.active').next().show();(我假设打开的导航项active在页面加载时有类(即它是通过 PHP 或其他东西放在那里的)。

另外,根据我的评论,不要使用$(this).attr('class') != 'active'use instead $(this).hasClass('active')。这将防止班级中的空格或其他班级等出现任何问题。

于 2012-08-15T00:44:24.170 回答