diff options
| author | Mark Otto <[email protected]> | 2016-10-24 20:50:04 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-10-24 20:50:04 -0700 |
| commit | 60e51bc918e98ba66b786a4dcf7c46d87b2a1bbb (patch) | |
| tree | 2faa19967171239f3770519aee261c8dca84df86 | |
| parent | b0d61474e83213379e1ea1e6696b679dcb33b8af (diff) | |
| parent | 9bc7de93950444eee1e4cae8b5a029bcb4907640 (diff) | |
| download | bootstrap-60e51bc918e98ba66b786a4dcf7c46d87b2a1bbb.tar.xz bootstrap-60e51bc918e98ba66b786a4dcf7c46d87b2a1bbb.zip | |
Merge pull request #18847 from Johann-S/fix18824
Fix bug multiple accordions collapse
| -rw-r--r-- | js/src/collapse.js | 2 | ||||
| -rw-r--r-- | js/tests/unit/collapse.js | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/js/src/collapse.js b/js/src/collapse.js index 1e2d4a63e..782d82a2f 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 892da52ed..dba15e865 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 = [ + '<div class="panel-group" id="accordion1">', + '<div class="panel">', + '<div id="collapse1" class="collapse"/>', + '</div>', + '</div>', + '<div class="panel-group" id="accordion2">', + '<div class="panel">', + '<div id="collapse2" class="collapse in"/>', + '</div>', + '</div>' + ].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 = $('<div class="collapse"/>').bootstrapCollapse('hide') |
