我使用here中的Accordion示例,我尝试通过添加2个按钮来扩展多个或单个Panel(由用户选择),使用jquery删除Attribute'数据-parent'或者再添加一次。
这是我的实施here
所有工作都是这样完成的:
$('#expandSingle').on('click', function () {
$('.accordion-toggle').attr('data-parent', '#accordion');
});
$('#expandMulti').on('click', function () {
$('.accordion-toggle').removeAttr('data-parent');
});
怪异的事情是,如果我手动(没有jquery),请删除' data-parent'并刷新,我得到我想要的结果,面板成为所有可折叠的。当我通过页面上的jquery这样做时,它有奇怪的行为,但不起作用......
有什么想法吗?
答案 0 :(得分:1)
它无效,因为已使用#accordion
作为data-parent
初始化了折叠组件。
您可以重新启动组件并重置数据属性,如下所示..
$('#expandSingle').on('click', function () {
$('.panel-collapse').removeData('bs.collapse');
$('.panel-collapse').collapse({parent:'#accordion'});
});
$('#expandMulti').on('click', function () {
$('.panel-collapse').removeData('bs.collapse');
$('.panel-collapse').collapse({parent:false});
});
答案 1 :(得分:0)
根据Skelly的回答,我对此有所改进:
$('#expandSingle').on('click', function () {
$('.panel-collapse').removeData('bs.collapse');
$('.panel-collapse').collapse({parent:'#accordion', toggle:false});
});
$('#expandMulti').on('click', function () {
$('.panel-collapse').removeData('bs.collapse');
$('.panel-collapse').collapse({parent:false, toggle:false});
});
我刚刚在collapse()上添加了toggle:false选项,所以当从Single切换到Multi时,我摆脱了这种恼人的切换。