mirror of
https://github.com/twbs/bootstrap.git
synced 2025-04-09 01:53:53 +02:00
Change the way collapse handles its children on opening
This commit is contained in:
parent
1eea132866
commit
9640e2d5dd
@ -13,7 +13,6 @@ import {
|
|||||||
reflow,
|
reflow,
|
||||||
typeCheckConfig
|
typeCheckConfig
|
||||||
} from './util/index'
|
} from './util/index'
|
||||||
import Data from './dom/data'
|
|
||||||
import EventHandler from './dom/event-handler'
|
import EventHandler from './dom/event-handler'
|
||||||
import Manipulator from './dom/manipulator'
|
import Manipulator from './dom/manipulator'
|
||||||
import SelectorEngine from './dom/selector-engine'
|
import SelectorEngine from './dom/selector-engine'
|
||||||
@ -77,7 +76,6 @@ class Collapse extends BaseComponent {
|
|||||||
.filter(foundElem => foundElem === this._element)
|
.filter(foundElem => foundElem === this._element)
|
||||||
|
|
||||||
if (selector !== null && filterElement.length) {
|
if (selector !== null && filterElement.length) {
|
||||||
this._selector = selector
|
|
||||||
this._triggerArray.push(elem)
|
this._triggerArray.push(elem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -116,21 +114,17 @@ class Collapse extends BaseComponent {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let actives = []
|
let activeChildren = []
|
||||||
let activesData
|
|
||||||
|
|
||||||
|
// find active children
|
||||||
if (this._config.parent) {
|
if (this._config.parent) {
|
||||||
actives = this._getFirstLevelChildren(SELECTOR_ACTIVES)
|
activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)
|
||||||
|
.filter(element => element !== this._element)
|
||||||
|
.map(element => Collapse.getOrCreateInstance(element, { toggle: false }))
|
||||||
}
|
}
|
||||||
|
|
||||||
const container = SelectorEngine.findOne(this._selector)
|
if (activeChildren.length && activeChildren[0]._isTransitioning) {
|
||||||
if (actives.length) {
|
return
|
||||||
const tempActiveData = actives.find(elem => container !== elem)
|
|
||||||
activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null
|
|
||||||
|
|
||||||
if (activesData && activesData._isTransitioning) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)
|
const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)
|
||||||
@ -138,14 +132,8 @@ class Collapse extends BaseComponent {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const elemActive of actives) {
|
for (const activeInstance of activeChildren) {
|
||||||
if (container !== elemActive) {
|
activeInstance.hide()
|
||||||
Collapse.getOrCreateInstance(elemActive, { toggle: false }).hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!activesData) {
|
|
||||||
Data.set(elemActive, DATA_KEY, null)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const dimension = this._getDimension()
|
const dimension = this._getDimension()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user