diff options
| author | Mark Otto <[email protected]> | 2017-06-14 20:31:43 -0700 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2017-06-14 20:31:43 -0700 |
| commit | d7302c221aa5688edb6323d754a4b7dd508759e3 (patch) | |
| tree | 491ceb2b48aee35391da626170eff9d8544d51bb /js/src | |
| parent | c2b68104b65531db02e1f56ef51199ad34f671f3 (diff) | |
| parent | 658fbd5c96244a28c225bd6e5e64f2c8c0409327 (diff) | |
| download | bootstrap-d7302c221aa5688edb6323d754a4b7dd508759e3.tar.xz bootstrap-d7302c221aa5688edb6323d754a4b7dd508759e3.zip | |
Merge branch 'form-tweaks' of https://github.com/twbs/bootstrap into form-tweaks
Diffstat (limited to 'js/src')
| -rw-r--r-- | js/src/collapse.js | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/js/src/collapse.js b/js/src/collapse.js index bf1c738f5..78ed32906 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -77,6 +77,14 @@ const Collapse = (($) => { `[data-toggle="collapse"][href="#${element.id}"],` + `[data-toggle="collapse"][data-target="#${element.id}"]` )) + const tabToggles = $(Selector.DATA_TOGGLE) + for (let i = 0; i < tabToggles.length; i++) { + const elem = tabToggles[i] + const selector = Util.getSelectorFromElement(elem) + if (selector !== null && $(selector).filter(element).length > 0) { + this._triggerArray.push(elem) + } + } this._parent = this._config.parent ? this._getParent() : null @@ -215,9 +223,17 @@ const Collapse = (($) => { .removeClass(ClassName.SHOW) if (this._triggerArray.length) { - $(this._triggerArray) - .addClass(ClassName.COLLAPSED) - .attr('aria-expanded', false) + for (let i = 0; i < this._triggerArray.length; i++) { + const trigger = this._triggerArray[i] + const selector = Util.getSelectorFromElement(trigger) + if (selector !== null) { + const $elem = $(selector) + if (!$elem.hasClass(ClassName.SHOW)) { + $(trigger).addClass(ClassName.COLLAPSED) + .attr('aria-expanded', false) + } + } + } } this.setTransitioning(true) @@ -349,11 +365,14 @@ const Collapse = (($) => { event.preventDefault() } - const target = Collapse._getTargetFromElement(this) - const data = $(target).data(DATA_KEY) - const config = data ? 'toggle' : $(this).data() - - Collapse._jQueryInterface.call($(target), config) + const $trigger = $(this) + const selector = Util.getSelectorFromElement(this) + $(selector).each(function () { + const $target = $(this) + const data = $target.data(DATA_KEY) + const config = data ? 'toggle' : $trigger.data() + Collapse._jQueryInterface.call($target, config) + }) }) |
