Bootstrap 3 のアコーディオンを ID なしで使用する方法を探しています。オープナーと折りたたまれた領域をリンクするために任意の一意の ID を使用したくありません。
私の質問のこの最初の部分は Bootstrap 2 で回答されました: ID を使用せずに兄弟 DOM 要素を参照する Bootstrap の「データターゲット」を指定できますか?
...だから私は上記の答えを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"
ます。標準のアコーディオンが Bootstrap 3 ドキュメントで行うように、親の ID を参照することは気にしません。つまり、これは 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');
});