我得到了一个折叠元素,其中包含一些嵌套的折叠元素。
我试图确保当父元素折叠时,内部嵌套项也会折叠。查看嵌套项时,它看起来确实折叠了,但当我重新打开父元素时,嵌套项并没有折叠。
我添加了data-bs-parent
属性,但似乎没有效果。
有什么明显的原因吗?
我在这里重现了这个例子-https://codepen.io/s89_/pen/vYamvzg
<div class="row module accordion-toggle collapsed" role="button" data-bs-toggle="collapse"
data-bs-target="#module-test" aria-expanded="false" aria-controls="module-test">
<h2>
<div>
<div><h3>Collapse</h3></div>
</div>
</h2>
<div id="module-test" class="collapse">
<div class="row group accordion-toggle collapsed d-flex" data-permissions-collapse-target="group"
role="button" data-bs-toggle="collapse" data-bs-target="#group-test_events" aria-expanded="false"
aria-controls="group-test_events" data-bs-parent="#module-test">
<h2>
<div>
<div><h3>Nested collapse item</h3></div>
</div>
</h2>
<div id="group-test_events" class="collapse">
<div class="">
Nested collapse contents
</div>
</div>
</div>
</div>
</div>
2条答案
按热度按时间kr98yfug1#
您只需要使用JavaScript(Bootstrap 5不使用jQuery)来关闭子节点,因为data-bs-parent属性不适用于此行为...
https://codeply.com/p/mJYXqUDGm6
3b6akqbq2#
引导5 -折叠(自动折叠后代)
首先,我稍微修改了一下你的html,使它更简单。
折叠切换:
这是一个折叠切换:
分别具有属性
data-bs-toggle
和data-bs-target
,以使其成为折叠切换,并定义相应折叠内容的目标选择器。我还设置了自定义类
collapse-toggle
,使其具有选择要切换的元素的条件。折叠内容:
这是一个折叠内容:
首先设置一个
id
,这样切换就有了一个目标选择器的条件。我尝试使用:scope + *
来定位下一个兄弟,但没有成功。不使用其id来寻址元素的最接近的解决方案是这里(https://stackoverflow.com/a/12809794/1221208)。类
collapse
告诉我希望默认情况下折叠该元素。我还设置了定制类
collapse-content
,使其具有选择内容元素的条件。通过js - event hidden.bs.collapse自动折叠后代
然后,为了对当前正在折叠的内容的后代执行自动折叠,我对
hidden.bs.collapse
事件使用了js方法,如下所述(https://getbootstrap.com/docs/5.0/components/collapse/#methods)一个一个二个一个一个一个三个一个一个一个一个一个四个一个