mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-15 10:05:40 +02:00
dist
This commit is contained in:
38
js/dist/collapse.js
vendored
38
js/dist/collapse.js
vendored
@@ -67,14 +67,17 @@ var Collapse = function ($) {
|
||||
this._isTransitioning = false;
|
||||
this._element = element;
|
||||
this._config = this._getConfig(config);
|
||||
this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
||||
var tabToggles = $(Selector.DATA_TOGGLE);
|
||||
this._triggerArray = $.makeArray(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
||||
var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
||||
|
||||
for (var i = 0; i < tabToggles.length; i++) {
|
||||
var elem = tabToggles[i];
|
||||
for (var i = 0, len = toggleList.length; i < len; i++) {
|
||||
var elem = toggleList[i];
|
||||
var selector = Util.getSelectorFromElement(elem);
|
||||
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
|
||||
return foundElem === element;
|
||||
});
|
||||
|
||||
if (selector !== null && $(selector).filter(element).length > 0) {
|
||||
if (selector !== null && filterElement.length > 0) {
|
||||
this._selector = selector;
|
||||
|
||||
this._triggerArray.push(elem);
|
||||
@@ -115,7 +118,9 @@ var Collapse = function ($) {
|
||||
var activesData;
|
||||
|
||||
if (this._parent) {
|
||||
actives = $.makeArray($(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
|
||||
actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
|
||||
return elem.getAttribute('data-parent') === _this._config.parent;
|
||||
});
|
||||
|
||||
if (actives.length === 0) {
|
||||
actives = null;
|
||||
@@ -150,7 +155,7 @@ var Collapse = function ($) {
|
||||
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||
this._element.style[dimension] = 0;
|
||||
|
||||
if (this._triggerArray.length > 0) {
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||
}
|
||||
|
||||
@@ -191,14 +196,15 @@ var Collapse = function ($) {
|
||||
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
||||
Util.reflow(this._element);
|
||||
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||
var triggerArrayLength = this._triggerArray.length;
|
||||
|
||||
if (this._triggerArray.length > 0) {
|
||||
for (var i = 0; i < this._triggerArray.length; i++) {
|
||||
if (triggerArrayLength > 0) {
|
||||
for (var i = 0; i < triggerArrayLength; i++) {
|
||||
var trigger = this._triggerArray[i];
|
||||
var selector = Util.getSelectorFromElement(trigger);
|
||||
|
||||
if (selector !== null) {
|
||||
var $elem = $(selector);
|
||||
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
||||
|
||||
if (!$elem.hasClass(ClassName.SHOW)) {
|
||||
$(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
||||
@@ -259,11 +265,12 @@ var Collapse = function ($) {
|
||||
parent = this._config.parent[0];
|
||||
}
|
||||
} else {
|
||||
parent = $(this._config.parent)[0];
|
||||
parent = document.querySelector(this._config.parent);
|
||||
}
|
||||
|
||||
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
|
||||
$(parent).find(selector).each(function (i, element) {
|
||||
var children = [].slice.call(parent.querySelectorAll(selector));
|
||||
$(children).each(function (i, element) {
|
||||
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
|
||||
});
|
||||
return parent;
|
||||
@@ -273,7 +280,7 @@ var Collapse = function ($) {
|
||||
if (element) {
|
||||
var isOpen = $(element).hasClass(ClassName.SHOW);
|
||||
|
||||
if (triggerArray.length > 0) {
|
||||
if (triggerArray.length) {
|
||||
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
}
|
||||
}
|
||||
@@ -282,7 +289,7 @@ var Collapse = function ($) {
|
||||
|
||||
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
||||
var selector = Util.getSelectorFromElement(element);
|
||||
return selector ? $(selector)[0] : null;
|
||||
return selector ? document.querySelector(selector) : null;
|
||||
};
|
||||
|
||||
Collapse._jQueryInterface = function _jQueryInterface(config) {
|
||||
@@ -340,7 +347,8 @@ var Collapse = function ($) {
|
||||
|
||||
var $trigger = $(this);
|
||||
var selector = Util.getSelectorFromElement(this);
|
||||
$(selector).each(function () {
|
||||
var selectors = [].slice.call(document.querySelectorAll(selector));
|
||||
$(selectors).each(function () {
|
||||
var $target = $(this);
|
||||
var data = $target.data(DATA_KEY);
|
||||
var config = data ? 'toggle' : $trigger.data();
|
||||
|
Reference in New Issue
Block a user