Tl;dr: 一番下までスクロールすると、簡単な説明が表示されます。
ちょっと変わった問題を抱えていると思いたいです。何よりもまず..私はすでにインターネット/グーグル、および含まれているサイト、およびこの質問をするときの提案を見てきました。
手元の話題に戻ると、ネストされた一連のアコーディオンを生成しています。ここでは、ネストの量が動的に生成されます。つまり、最下位レベルのアイテムが持つことができる親の数に制限が設定されていないため、 「.acord1、.acord2、.acord3」などのオプションではありません。
問題に.. アコーディオンのヘッダーのいくつかは最下層の項目であり、それらには子がなく、アコーディオンが添付されていません。
以下の例の html には、直面している問題を再現しているため、上記の項目が含まれていません。これは、header:
オプション (前述の項目を除外するために使用します) を追加すると、最上位のアコーディオンがトリガーされ、閉じられるという事実です。子の 1 つがクリックされたとき。
以下は、最小限のコードで再現できたテストケースです。
<div class="acord">
<h3>test1</h3>
<div class="acord">
<h3>test2</h3>
<div>test2cont</div>
</div>
<h3 class="item">test3</h3>
</div>
$(".acord").accordion({
header: "h3:not(.item)",
heightStyle: "content",
active: false,
collapsible: true,
});
上記の場合、tl;dr
ネストされたアコーディオンでヘッダー オプションを指定しても機能せず、(クリックされた) 子アコーディオンの親が閉じます。
解決策はありますか?