From 9bc7de93950444eee1e4cae8b5a029bcb4907640 Mon Sep 17 00:00:00 2001 From: Johann-S Date: Mon, 11 Jan 2016 20:42:35 +0100 Subject: [PATCH] Fix bug multiple accordions collapse --- js/src/collapse.js | 2 +- js/tests/unit/collapse.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/js/src/collapse.js b/js/src/collapse.js index 560ab2cbd4..b784b82b60 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -121,7 +121,7 @@ const Collapse = (($) => { let activesData if (this._parent) { - actives = $.makeArray($(Selector.ACTIVES)) + actives = $.makeArray($(this._parent).find(Selector.ACTIVES)) if (!actives.length) { actives = null } diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js index 892da52ed2..dba15e8659 100644 --- a/js/tests/unit/collapse.js +++ b/js/tests/unit/collapse.js @@ -52,6 +52,29 @@ $(function () { assert.ok(!/height/i.test($el.attr('style')), 'has height reset') }) + QUnit.test('should collapse only the first collapse', function (assert) { + assert.expect(2) + var html = [ + '
', + '
', + '
', + '
', + '
', + '
', + '
', + '
', + '
', + '
' + ].join('') + $(html).appendTo('#qunit-fixture') + var $el1 = $('#collapse1') + var $el2 = $('#collapse2') + $el1.bootstrapCollapse('show') + + assert.ok($el1.hasClass('in')) + assert.ok($el2.hasClass('in')) + }) + QUnit.test('should hide a collapsed element', function (assert) { assert.expect(1) var $el = $('
').bootstrapCollapse('hide')