我正在尝试创建一个包含多个组织级别的导航菜单。我正在构建一个嵌套的jQuery UI手风琴,如果所有内容都在手风琴的最低级别(最深)嵌套中,那么它非常有用。问题是有些元素会有内容和副手风琴。如果我在顶部手风琴旁放置一些文字,它看起来很棒......但是一旦我将它包裹在标签中,它就会打破该元素中的嵌套手风琴
这是我试图让它看起来像的样机 Photo Mockup
我目前的HTML
<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元素来构建手风琴。
我在调用accordian时指定了header选项,如下所示
$("div.accordian").accordion({
autoHeight: false,
collapsible: true,
active: false,
header: 'h3'
});
这接近期望的效果。列表呈现在正确的位置,但第二部分中的嵌套手风琴不起作用。
我设置了Fiddle
答案 0 :(得分:6)
这应该有效
<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>
演示:Fiddle
对于标签Two
,您需要创建另一个包装元素,并将ul
和子accordion
作为其子项
答案 1 :(得分:2)
的 Check out this fiddle 强> 的
你是正确的,它会查看标题之后的下一个元素,因此你可以用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>