Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单的jQuery垂直折叠式菜单,在页面加载时扩展特定列表项_Jquery_Css_Accordion - Fatal编程技术网

简单的jQuery垂直折叠式菜单,在页面加载时扩展特定列表项

简单的jQuery垂直折叠式菜单,在页面加载时扩展特定列表项,jquery,css,accordion,Jquery,Css,Accordion,我试图弄清楚如何在页面加载时在一个简单的jQuery垂直手风琴菜单中扩展一个特定的列表项。我尝试将其添加到jquery以打开加载的第一个列表项,但它似乎不起作用: $('#nav li:first ul').show(); jQuery的其余部分是: <script type="text/javascript"> $(document).ready(function () { $('#nav > li > a').click(function(){ if (

我试图弄清楚如何在页面加载时在一个简单的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>

$(文档).ready(函数(){
$('#nav>li>a')。单击(函数(){
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();
}
});
});
开发页面


谢谢

您是否正在寻找类似于:

开放“加纳”作为第一环

$(function(){$($('a','#nav')[0]).click();});

看起来不是jQuery手风琴,而是。上一句中的链接显示了API,看起来您希望使用以下内容:

Accordion1.openPanel(index);

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

您已将所有内容包装在
函数中。click()
函数。您的意思是希望它在页面加载时打开,但在实际单击导航项之前,这些代码都不会执行

也许你所要做的就是添加一个
$('#nav>li>a.active')。下一步().show()
(我假设打开的nav项在页面加载时有
活动的
类(即,它通过PHP或其他方式放在那里)


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

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

不要使用
$(this.attr('class')!='active'
使用
$(this.hasClass('active'))
。这将防止类中的空格出现任何问题,或者如果存在其他类,等等。是的,因此当打开页面时,会展开“加纳”面板,显示子菜单。当我将其添加到jQuery:$(文档)。ready(函数(){$('#nav>li>a')。单击(函数(){if($(This)。attr('class')时,这似乎不起作用!='active'){$('nav li ul')。slideUp();$(this)。next()。slideToggle();$('nav li a')。removeClass('active');$(this)。addClass('active');$(function(){$($('a','nav')[0])。click();}})`抱歉,页面上实际上有两个手风琴。我指的是左侧可扩展的垂直导航。使用$(this.attr('class'))!='active'似乎打破了下拉功能。此外,导航项没有附加活动类。我只是想知道是否有一种方法可以在页面加载时扩展列表项。是的,如果它有活动类,您可以使用我概述的方法。否则,如果您希望它基于索引,您可以执行
$(“#nav>li>a”).eq(index).next().show();
其中
index
是要打开的项目(一个数字)。