我在堆栈溢出上找到了这个主题:Closing parent accordion needs to close all children accordion其中或多或少包含我正在搜索的内容。
我正在使用 bootstrap 4,我的问题是我不知道如何调整其他主题的代码,以便在关闭主 Accordion 卡时关闭 Accordion 和单个可折叠项目...
有人可以帮忙吗?这是我的 fiddle 示例:
https://jsfiddle.net/fgh0qw9x/
到目前为止我尝试的是调整代码,如下所示:
closeChildrenAccordion : function (accordion) {
if (jQuery(".show")) {
jQuery(".show").unbind().click(function () {
jQuery(accordion).removeClass('show');
var parentPanelHeading = jQuery(this).closest('.card-header'); // Get parent
var siblings = parentPanelHeading.siblings()[0]; // Get div that needs to be closed when closing parent div
if(jQuery(siblings).hasClass("in"))
{
jQuery(siblings).find('a').each(function (index, element) {
if(jQuery(element).hasClass('show'))
element.click();
});
}
});
}
}
但是我很诚实,我不太理解代码,希望有人能帮助我......
最佳答案
您可以将处理程序附加到 hide.bs.collapse
在折叠项目之前触发,然后查找
当前打开的其他可折叠元素。这应该适用于任何深度的元素:
$('.collapse').on('hide.bs.collapse', function() {
$(this).find('.collapse.show').removeClass('show');
})
我们直接删除该类,因为如果您尝试使用其 api 切换折叠面板,它将再次触发 hide.bs.collapse
事件。
关于javascript - 如何在关闭 Accordion 时自动关闭 Accordion 内部的所有可折叠元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56842023/