我正在寻找一种无 ID 的方式来使用 Bootstrap 3 的手风琴。我不想使用任意唯一的 ID 来链接开瓶器和折叠区域。
我的问题的第一部分是针对 Bootstrap 2 回答的: 您可以为 Bootstrap 指定一个“数据目标”,它指的是不使用 ID 的同级 DOM 元素吗?
...所以我已将上述答案转换为在 Bootstrap 3 (小提琴链接)中工作:
$('body').on('click', '[data-toggle=collapse-next]', function (e) {
var $target = $(this).parents('.panel').find('.panel-collapse');
$target.collapse('toggle');
});
但是,我也希望“关闭其他人”功能仍然有效,即data-parent="#accordion"
. 我不介意引用父级的 ID,尽管正如 Bootstrap 3 文档中的标准手风琴所做的那样,即这不需要无 ID!
找到修复后更新
在接受下面bbone的回答后,我已经更新了这个块以作为所问的问题。(工作演示 js 小提琴)。
$('.panel-collapse').collapse({toggle: false});
$('body').on('click', '[data-toggle=collapse-next]', function (e) {
e.preventDefault();
// Try to close all of the collapse areas first
var parent_id = $(this).data('parent');
$(parent_id+' .panel-collapse').collapse('hide');
// ...then open just the one we want
var $target = $(this).parents('.panel').find('.panel-collapse');
$target.collapse('toggle');
});