我正在尝试创建一个包含多级组织的导航菜单。我正在构建一个嵌套的jQuery UI手风琴,如果我的所有内容都在手风琴的最低级别(最深)嵌套中,它就会很好地工作。问题是某些元素将具有内容和子手风琴.如果我在顶部手风琴的侧面放置一些文本,它看起来很棒......但是一旦我将其包装在标签中,它就会破坏该元素中的嵌套手风琴
这是我试图让它看起来像什么的模型照片样机
我当前的网页
<div id="faqs-container" class="accordian">
<h3><a href="#">One</a></h3>
<div class="accordian">
I really want a list here!
<h3><a class=href="#">A</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
<h3><a href="#">B</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
</div>
<h3><a href="#">Two</a></h3>
<div class="accordian">
<ul>
<li>But They</li>
<li>Do Not</li>
<li>Work</li>
</ul>
<h3><a href="#">A2</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
<h3><a href="#">B2</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
</div>
</div>
Jquery
$("div.accordian").accordion({
autoHeight: false,
collapsible: true,
active: false
});
像这样运行代码会为第一部分生成一个良好的嵌套折叠项,但第二部分呈现不正确。看起来jQuery开始在标题之后抓取第一个html元素来构建手风琴。
我在调用手风琴时指定了标题选项,如下所示
$("div.accordian").accordion({
autoHeight: false,
collapsible: true,
active: false,
header: 'h3'
});
这接近预期效果。列表呈现在正确的位置,但第二部分中的嵌套手风琴不起作用。
我设置了一个小提琴
这应该有效
<div id="faqs-container" class="accordian">
<h3><a href="#">One</a></h3>
<div class="accordian">
I really want a list here!
<h3><a class=href="#">A</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
<h3><a href="#">B</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
</div>
<h3><a href="#">Two</a></h3>
<div> <-- A Wrapper -->
<ul>
<li>But They</li>
<li>Do Not</li>
<li>Work</li>
</ul>
<div class="accordian">
<h3><a href="#">A2</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
<h3><a href="#">B2</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
</div>
</div>
</div>
演示:小提琴
对于选项卡Two
,您需要创建另一个包装元素并将ul
和子accordion
作为其子元素放置
看看这个小提琴
您是正确的,它查看标题后面的下一个元素,因此您可以简单地用div包装顶级手风琴的内容,然后包含您的子手风琴。
<h3><a href="#">Two</a></h3>
<div> <!-- This wrapper -->
<ul>
<li>But They</li>
<li>Do Not</li>
<li>Work</li>
</ul>
<div class="accordian">
<h3><a href="#">A2</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
<h3><a href="#">B2</a></h3>
<div>
<ul>
<li>list</li>
<li>list</li>
<li>list</li>
</ul>
</div>
</div>
</div>