Jquery:仅显示子LI设置为class=active的UL
我有这样的菜单结构:Jquery:仅显示子LI设置为class=active的UL,jquery,html-lists,accordion,submenu,Jquery,Html Lists,Accordion,Submenu,我有这样的菜单结构: <ul id="accordion"> <li><a href="#">Books</a> <ul> <li><a href="thrillers.html">Thrillers</a></li> <li><a href="scifi.html">Sci-fi</a></li> <li
<ul id="accordion">
<li><a href="#">Books</a>
<ul>
<li><a href="thrillers.html">Thrillers</a></li>
<li><a href="scifi.html">Sci-fi</a></li>
<li><a href="nf.html">Non-fiction</a></li>
</ul>
</li>
<li><a href="#">Games</a>
<ul>
<li><a href="rpg.html">RPG</a></li>
<li><a href="sim.html">Simulations</a></li>
<li><a href="action.html">Action</a></li>
</ul>
</li>
</ul>
-
-
(等等)
现在,我们点击“RPG”,我想在RPG页面上打开游戏子菜单。因此,我决定向选定的LI添加一个类:
...
<ul>
<li class="active"><a href="rpg.html">RPG</a></li>
<li><a href="sim.html">Simulations</a></li>
<li><a href="action.html">Action</a></li>
</ul>
...
。。。
...
现在,我要做的是让jQuery找到带有class=“active”的UL,然后打开该UL
我只是想问一下这个jQuery:
<script>
$(document).ready(function () {
//hide all submenu's onLoad
$('#accordion li').children('ul').slideUp('fast');
$('#accordion a.item').click(function () {
/* FIRST SECTION */
//slideup or hide all the Submenu
$('#accordion li').children('ul').slideUp('fast');
//remove all the "Over" class, so that the arrow reset to default
$('#accordion a.item').each(function () {
if ($(this).attr('rel')!='') {
$(this).removeClass($(this).attr('rel') + 'Over');
}
});
/* SECOND SECTION */
//show the selected submenu
$(this).siblings('ul').slideDown('fast');
//add "Over" class, so that the arrow pointing down
$(this).addClass($(this).attr('rel') + 'Over');
return false;
});
});
</script>
$(文档).ready(函数(){
//隐藏所有子菜单的加载
$('手风琴李')。儿童('ul')。幻灯片('fast');
$(“#手风琴a.item”)。单击(函数(){
/*第一节*/
//滑动或隐藏所有子菜单
$('手风琴李')。儿童('ul')。幻灯片('fast');
//删除所有“Over”类,使箭头重置为默认值
$('#手风琴a.item')。每个(函数(){
如果($(this.attr('rel')!=“”){
$(this.removeClass($(this.attr('rel')+'Over');
}
});
/*第二节*/
//显示所选子菜单
$(this).兄弟姐妹('ul').slideDown('fast');
//添加“Over”类,使箭头指向下方
$(this.addClass($(this.attr('rel')+'Over');
返回false;
});
});
在加载部件之后,我需要什么才能只打开我想要打开的部件?这可能会有帮助:
$('#accordion > li > ul > li.active').parent().slideDown('fast');
这可能有助于:
$('#accordion > li > ul > li.active').parent().slideDown('fast');
尝试获取直接子级
>
活动li:
$(document).ready(function () {
$('#accordion li').children('ul').slideUp('fast'); //<--hide all child uls
$('#accordion > li').click(function () { ///<---perform a click event on li
$(this).addClass('active').siblings('li').removeClass('active'); //<--add active class to the clicked element and remove from other siblings li
$(this).siblings('li').find('ul').slideUp('fast'); // <---find the ul in the siblings and slide those up
$('> ul', this).slideDown('fast'); // <--then perform the slideDown
});
});
$(文档).ready(函数(){
$(“#accordion li”)。children('ul')。slideUp('fast');//尝试获取直接子级
活动li:
$(document).ready(function () {
$('#accordion li').children('ul').slideUp('fast'); //<--hide all child uls
$('#accordion > li').click(function () { ///<---perform a click event on li
$(this).addClass('active').siblings('li').removeClass('active'); //<--add active class to the clicked element and remove from other siblings li
$(this).siblings('li').find('ul').slideUp('fast'); // <---find the ul in the siblings and slide those up
$('> ul', this).slideDown('fast'); // <--then perform the slideDown
});
});
$(文档).ready(函数(){
$(“#手风琴李”).children('ul').slideUp('fast');//太棒了,谢谢。看起来很简单,但我没有使用>字符。所以,这就是我没有成功的原因。再次感谢。太棒了,谢谢。看起来很简单,但我没有使用>字符。所以,这就是我没有成功的原因。再次感谢。