7

我正在尝试创建一个包含多个组织级别的导航菜单。我正在构建一个嵌套的 jQuery UI 手风琴,如果我的所有内容都在手风琴的最低级别(最深)的嵌套中,它会很好用。问题是某些元素将具有内容和子手风琴。如果我在顶部手风琴旁边放置一些文本,它看起来很棒......但是一旦我将它包装在标签中,它就会破坏该元素中的嵌套手风琴

这是我试图让它看起来像 照片样机的样机

我当前的 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 元素来构建手风琴。

我在调用手风琴时指定了标题选项,如下所示

$("div.accordian").accordion({
    autoHeight: false,
    collapsible: true,
    active: false,
    header: 'h3'

});

这接近预期的效果。该列表呈现在正确的位置,但第二部分中的嵌套手风琴不起作用。

我有一个小提琴设置

4

2 回答 2

7

这应该工作

<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,您需要创建另一个包装元素并将uland 子元素accordion作为其子元素

于 2013-01-31T01:28:35.033 回答
3

看看这个小提琴

您是正确的,它查看标题之后的下一个元素,因此您可以简单地用 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>
于 2013-01-31T01:29:26.077 回答