diff options
Diffstat (limited to 'assets/javascripts/bootstrap/tab.js')
-rw-r--r-- | assets/javascripts/bootstrap/tab.js | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/assets/javascripts/bootstrap/tab.js b/assets/javascripts/bootstrap/tab.js index a38f48b..ba1b9c1 100644 --- a/assets/javascripts/bootstrap/tab.js +++ b/assets/javascripts/bootstrap/tab.js @@ -4,7 +4,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons /** * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.5): tab.js + * Bootstrap (v4.0.0-alpha.6): tab.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -18,7 +18,7 @@ var Tab = function ($) { */ var NAME = 'tab'; - var VERSION = '4.0.0-alpha.5'; + var VERSION = '4.0.0-alpha.6'; var DATA_KEY = 'bs.tab'; var EVENT_KEY = '.' + DATA_KEY; var DATA_API_KEY = '.data-api'; @@ -36,15 +36,16 @@ var Tab = function ($) { var ClassName = { DROPDOWN_MENU: 'dropdown-menu', ACTIVE: 'active', + DISABLED: 'disabled', FADE: 'fade', - IN: 'in' + SHOW: 'show' }; var Selector = { A: 'a', LI: 'li', DROPDOWN: '.dropdown', - UL: 'ul:not(.dropdown-menu)', + LIST: 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)', FADE_CHILD: '> .nav-item .fade, > .fade', ACTIVE: '.active', ACTIVE_CHILD: '> .nav-item > .active, > .active', @@ -73,17 +74,17 @@ var Tab = function ($) { Tab.prototype.show = function show() { var _this = this; - if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE)) { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) { return; } var target = void 0; var previous = void 0; - var ulElement = $(this._element).closest(Selector.UL)[0]; + var listElement = $(this._element).closest(Selector.LIST)[0]; var selector = Util.getSelectorFromElement(this._element); - if (ulElement) { - previous = $.makeArray($(ulElement).find(Selector.ACTIVE)); + if (listElement) { + previous = $.makeArray($(listElement).find(Selector.ACTIVE)); previous = previous[previous.length - 1]; } @@ -109,7 +110,7 @@ var Tab = function ($) { target = $(selector)[0]; } - this._activate(this._element, ulElement); + this._activate(this._element, listElement); var complete = function complete() { var hiddenEvent = $.Event(Event.HIDDEN, { @@ -139,10 +140,14 @@ var Tab = function ($) { // private Tab.prototype._activate = function _activate(element, container, callback) { + var _this2 = this; + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0])); - var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback); + var complete = function complete() { + return _this2._transitionComplete(element, active, isTransitioning, callback); + }; if (active && isTransitioning) { $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); @@ -151,7 +156,7 @@ var Tab = function ($) { } if (active) { - $(active).removeClass(ClassName.IN); + $(active).removeClass(ClassName.SHOW); } }; @@ -159,7 +164,7 @@ var Tab = function ($) { if (active) { $(active).removeClass(ClassName.ACTIVE); - var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; + var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; if (dropdownChild) { $(dropdownChild).removeClass(ClassName.ACTIVE); @@ -173,7 +178,7 @@ var Tab = function ($) { if (isTransitioning) { Util.reflow(element); - $(element).addClass(ClassName.IN); + $(element).addClass(ClassName.SHOW); } else { $(element).removeClass(ClassName.FADE); } @@ -201,7 +206,7 @@ var Tab = function ($) { var data = $this.data(DATA_KEY); if (!data) { - data = data = new Tab(this); + data = new Tab(this); $this.data(DATA_KEY, data); } |