Jquery 如何根据所选项目向上或向下滑动ul元件
对于我正在构建的应用程序,我有下面的菜单,我很难应用一些jquery规则来隐藏菜单的子类别 我想做的事情如下: 当我第一次加载页面时,我希望每个类别的子项(child1、child2等)向上滑动(关闭)。通过代码,我跟踪所选项目,因此,如果我加载其他页面,则应根据以下规则生成菜单: 如果我将一个类“selected”应用于(比如)Category1,那么我希望它的子类向下滑动。如果类“selected”应用于子级,那么我希望它的父级ul也被扩展 案例1:应用于类别1的选定类别Jquery 如何根据所选项目向上或向下滑动ul元件,jquery,menu,accordion,selected,Jquery,Menu,Accordion,Selected,对于我正在构建的应用程序,我有下面的菜单,我很难应用一些jquery规则来隐藏菜单的子类别 我想做的事情如下: 当我第一次加载页面时,我希望每个类别的子项(child1、child2等)向上滑动(关闭)。通过代码,我跟踪所选项目,因此,如果我加载其他页面,则应根据以下规则生成菜单: 如果我将一个类“selected”应用于(比如)Category1,那么我希望它的子类向下滑动。如果类“selected”应用于子级,那么我希望它的父级ul也被扩展 案例1:应用于类别1的选定类别 <ul>
<ul>
<li class="selected has-children first-child">Category1</a>
<ul>
<li class="first-child">Child1</li>
<li class=" ">Child2</li>
<li class=" ">Child3</li>
<li class=" ">Child4</li>
<li class=" ">Child5></li>
<li class=" ">Child6</li>
<li class="last-child">Child6</li>
</ul>
</li>
<li class="has-children">Category2</a>
<ul>
<li class="first-child">Child1</li>
</ul>
</li>
<li class="has-children last-child">Category3</a>
<ul>
<li class="first-child">Child1</li>
<li class="last-child">Child2</li>
</ul>
</li>
</ul>
- 类别1
- 孩子1
- 儿童2
- 儿童3
- 儿童4
- 儿童5>
- 儿童6
- 孩子6
- 类别2
- 孩子1
- 类别3
- 孩子1
- 孩子2
案例2:应用于child4的选定类(ul应扩展)
- 类别1
- 孩子1
- 儿童2
- 儿童3
- Child4
- 儿童5>
- 儿童6
- 孩子6
- 类别2
- 孩子1
- 类别3
- 孩子1
- 孩子2
提前谢谢你你想通过展开/折叠这些菜单进行互动吗?还是只想在pageload上应用此功能一次?如果是第二个,则需要定义类名:
li.parent {
display:none;
}
li.selected {
display:block;
}
您需要将此类名应用于所有父元素。选择了类名的所有父元素将自动显示其子元素。然后,使用这个jQuery:
$(function() {
$('li.parent li').each(function() {
var parent = $(this).parent('ul').parent('li');
if($(this).hasClass('selected') || parent.hasClass('selected')) {
parent.show();
}
});
});
这将循环遍历每个li子元素,并检查它是否选择了类名
。如果是,则显示父菜单。是否希望通过展开/折叠这些菜单进行交互?还是只想在pageload上应用此功能一次?如果是第二个,则需要定义类名:
li.parent {
display:none;
}
li.selected {
display:block;
}
您需要将此类名应用于所有父元素。选择了类名的所有父元素将自动显示其子元素。然后,使用这个jQuery:
$(function() {
$('li.parent li').each(function() {
var parent = $(this).parent('ul').parent('li');
if($(this).hasClass('selected') || parent.hasClass('selected')) {
parent.show();
}
});
});
这将循环遍历每个li子元素,并检查它是否选择了类名
。如果是,则显示为李家长。谢谢。我快到了。我已将类li.parent替换为li.has-children,以便更适合我使用的代码。但是,当我将所选的类应用于一个子类时,什么都没有显示。看看这个:谢谢。我快到了。我已将类li.parent替换为li.has-children,以便更适合我使用的代码。但是,当我将所选的类应用于一个子类时,什么都没有显示。看看这里: