diff --git a/js/collapse.js b/js/collapse.js index a265344f4093..db89804cb798 100644 --- a/js/collapse.js +++ b/js/collapse.js @@ -124,7 +124,7 @@ var data = $this.data('bs.collapse') var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - if (!data && options.toggle && option == 'show') option = !option + if (!data && options.toggle && option == 'show') options.toggle = false if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) if (typeof option == 'string') data[option]() }) diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js index 8e6bb82736d8..ffa8f7e6db80 100644 --- a/js/tests/unit/collapse.js +++ b/js/tests/unit/collapse.js @@ -102,6 +102,38 @@ $(function () { $target.click() }) + test('should not close a collapse when initialized with "show" if already shown', function () { + stop() + + expect(0) + + var $test = $('
') + .appendTo('#qunit-fixture') + .on('hide.bs.collapse', function () { + ok(false) + }) + + $test.bootstrapCollapse('show') + + setTimeout(start, 0) + }) + + test('should open a collapse when initialized with "show" if not already shown', function () { + stop() + + expect(1) + + var $test = $('
') + .appendTo('#qunit-fixture') + .on('show.bs.collapse', function () { + ok(true) + }) + + $test.bootstrapCollapse('show') + + setTimeout(start, 0) + }) + test('should remove "collapsed" class from active accordion target', function () { stop()