mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
Merge branch 'collapse' of https://github.com/Johann-S/bootstrap into Johann-S-collapse
This commit is contained in:
commit
3730c5dbf5
@ -57,7 +57,8 @@ const Collapse = (($) => {
|
||||
|
||||
const Selector = {
|
||||
ACTIVES : '.card > .show, .card > .collapsing',
|
||||
DATA_TOGGLE : '[data-toggle="collapse"]'
|
||||
DATA_TOGGLE : '[data-toggle="collapse"]',
|
||||
DATA_CHILDREN : 'data-children'
|
||||
}
|
||||
|
||||
|
||||
@ -77,13 +78,20 @@ const Collapse = (($) => {
|
||||
`[data-toggle="collapse"][href="#${element.id}"],` +
|
||||
`[data-toggle="collapse"][data-target="#${element.id}"]`
|
||||
))
|
||||
|
||||
this._parent = this._config.parent ? this._getParent() : null
|
||||
|
||||
if (!this._config.parent) {
|
||||
this._addAriaAndCollapsedClass(this._element, this._triggerArray)
|
||||
}
|
||||
|
||||
this._selectorActives = Selector.ACTIVES
|
||||
if (this._parent) {
|
||||
const childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null
|
||||
if (childrenSelector !== null) {
|
||||
this._selectorActives = `${childrenSelector} > .show, ${childrenSelector} > .collapsing`
|
||||
}
|
||||
}
|
||||
|
||||
if (this._config.toggle) {
|
||||
this.toggle()
|
||||
}
|
||||
@ -124,7 +132,7 @@ const Collapse = (($) => {
|
||||
let activesData
|
||||
|
||||
if (this._parent) {
|
||||
actives = $.makeArray($(this._parent).find(Selector.ACTIVES))
|
||||
actives = $.makeArray($(this._parent).find(this._selectorActives))
|
||||
if (!actives.length) {
|
||||
actives = null
|
||||
}
|
||||
|
@ -490,4 +490,27 @@ $(function () {
|
||||
.bootstrapCollapse('show')
|
||||
})
|
||||
|
||||
QUnit.test('should allow accordion to use children other than card', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
var accordionHTML = '<div id="accordion" data-children=".item">'
|
||||
+ '<div class="item">'
|
||||
+ '<a id="linkTrigger" data-parent="#accordion" data-toggle="collapse" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne"></a>'
|
||||
+ '<div id="collapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree"></div>'
|
||||
+ '</div>'
|
||||
+ '<div class="item">'
|
||||
+ '<a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"></a>'
|
||||
+ '<div id="collapseTwo" class="collapse show" role="tabpanel" aria-labelledby="headingTwo"></div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
|
||||
$(accordionHTML).appendTo('#qunit-fixture')
|
||||
var $target = $('#linkTrigger')
|
||||
$('#collapseOne').on('shown.bs.collapse', function () {
|
||||
assert.ok($(this).hasClass('show'))
|
||||
assert.ok(!$('#collapseTwo').hasClass('show'))
|
||||
done()
|
||||
})
|
||||
$target.trigger($.Event('click'))
|
||||
})
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user