複数のレベルの編成を含むナビゲーションメニューを作成しようとしています。ネストされたjQueryUIアコーディオンを構築しています。これは、すべてのコンテンツがアコーディオンの最下位レベル(最も深い)のネストにある場合にうまく機能します。問題は、一部の要素にコンテンツとサブアコーディオンが含まれることです。一番上のアコーディオンの横にテキストを配置すると見栄えがします...しかし、タグでラップするとすぐに、その要素のネストされたアコーディオンが壊れます
これが私が写真のモックアップのように見せようとしているもののモック アップです
私の現在の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
});
このようにコードを実行すると、最初のセクションに適切なネストされたアコーディオンが生成されますが、2番目のセクションは正しくレンダリングされません。jQueryは、ヘッダーの後に最初のhtml要素を取得して、アコーディオンを構築し始めているようです。
アコーディオンを呼び出すときにヘッダーオプションを次のように指定しました
$("div.accordian").accordion({
autoHeight: false,
collapsible: true,
active: false,
header: 'h3'
});
これにより、目的の効果に近づきます。リストは正しい場所に表示されますが、2番目のセクションのネストされたアコーディオンは機能しません。
フィドルを設定しました