diff options
| author | Jacob <[email protected]> | 2013-06-27 22:36:33 -0700 |
|---|---|---|
| committer | Jacob <[email protected]> | 2013-06-27 22:36:33 -0700 |
| commit | d23800c8283aa71fd2936750e41bff488c4c0091 (patch) | |
| tree | b16ffdcc1eff7443fb19d4e1bba287210030be16 | |
| parent | 88ece4fc5902f7dd9582fb4e5956062fe97af84c (diff) | |
| parent | e138b0df3a1bcd536cc312d7c4714ff5bc9acd2b (diff) | |
| download | bootstrap-d23800c8283aa71fd2936750e41bff488c4c0091.tar.xz bootstrap-d23800c8283aa71fd2936750e41bff488c4c0091.zip | |
Merge pull request #7424 from sody/3.0.0-wip
Fixes #7213 Collapse plugin does not correctly set the "collapsed" class.
| -rw-r--r-- | js/collapse.js | 3 | ||||
| -rw-r--r-- | js/tests/unit/collapse.js | 35 |
2 files changed, 38 insertions, 0 deletions
diff --git a/js/collapse.js b/js/collapse.js index b2678e0a5..7c3c20da1 100644 --- a/js/collapse.js +++ b/js/collapse.js @@ -145,7 +145,10 @@ || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 var option = $(target).data('collapse') ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') + var $parent = parent && $(parent) + if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed') $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') $(target).collapse(option) }) diff --git a/js/tests/unit/collapse.js b/js/tests/unit/collapse.js index dd2cee27d..73799c75d 100644 --- a/js/tests/unit/collapse.js +++ b/js/tests/unit/collapse.js @@ -91,4 +91,39 @@ $(function () { target.click() }) + test("should remove active class from inactive accordion targets", function () { + $.support.transition = false + stop() + + var accordion = $('<div id="accordion"><div class="accordion-group"></div><div class="accordion-group"></div><div class="accordion-group"></div></div>') + .appendTo($('#qunit-fixture')) + + var target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"></a>') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var collapsible1 = $('<div id="body1" class="in"></div>') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent="#accordion"></a>') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var collapsible2 = $('<div id="body2"></div>') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent="#accordion"></a>') + .appendTo(accordion.find('.accordion-group').eq(2)) + + var collapsible3 = $('<div id="body3"></div>') + .appendTo(accordion.find('.accordion-group').eq(2)) + .on('show.bs.collapse', function () { + ok(target1.hasClass('collapsed')) + ok(target2.hasClass('collapsed')) + ok(!target3.hasClass('collapsed')) + + start() + }) + + target3.click() + }) + }) |
