diff options
author | Mark Otto <markdotto@gmail.com> | 2018-06-22 08:55:23 +0300 |
---|---|---|
committer | Mark Otto <markdotto@gmail.com> | 2018-06-22 08:55:23 +0300 |
commit | eadeab9d1cf6a1d8315a5aab35f247034931ea6e (patch) | |
tree | 660e3dd5d924afcf3cd595ac7dd41fb86842cdc9 /js/dist/collapse.js | |
parent | e59265c42db4c9fec397fd92e9646def0b2b4200 (diff) |
dist
Diffstat (limited to 'js/dist/collapse.js')
-rw-r--r-- | js/dist/collapse.js | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 529a3cc6bd..54e8cac285 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -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(); |