diff options
author | Mark Otto <markdotto@gmail.com> | 2016-12-02 21:13:36 +0300 |
---|---|---|
committer | Mark Otto <markdotto@gmail.com> | 2016-12-02 21:13:36 +0300 |
commit | 3ec37d4a4d043ded903c807818e7894de084409f (patch) | |
tree | aaf483f062a7f721093632df5d0d198e9830dacc /js/dist/tooltip.js | |
parent | e3a569f4f6ab326d78300c6a8ab3e3766075cfd0 (diff) |
grunt
Diffstat (limited to 'js/dist/tooltip.js')
-rw-r--r-- | js/dist/tooltip.js | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js index 0ba14d6c76..c63e2d9e4f 100644 --- a/js/dist/tooltip.js +++ b/js/dist/tooltip.js @@ -125,6 +125,7 @@ var Tooltip = function ($) { this._timeout = 0; this._hoverState = ''; this._activeTrigger = {}; + this._isTransitioning = false; this._tether = null; // protected @@ -210,9 +211,12 @@ var Tooltip = function ($) { if ($(this.element).css('display') === 'none') { throw new Error('Please use show on visible elements'); } - var showEvent = $.Event(this.constructor.Event.SHOW); + var showEvent = $.Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { + if (this._isTransitioning) { + throw new Error('Tooltip is transitioning'); + } $(this.element).trigger(showEvent); var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element); @@ -262,6 +266,7 @@ var Tooltip = function ($) { var complete = function complete() { var prevHoverState = _this._hoverState; _this._hoverState = null; + _this._isTransitioning = false; $(_this.element).trigger(_this.constructor.Event.SHOWN); @@ -271,6 +276,7 @@ var Tooltip = function ($) { }; if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + this._isTransitioning = true; $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION); return; } @@ -284,6 +290,9 @@ var Tooltip = function ($) { var tip = this.getTipElement(); var hideEvent = $.Event(this.constructor.Event.HIDE); + if (this._isTransitioning) { + throw new Error('Tooltip is transitioning'); + } var complete = function complete() { if (_this2._hoverState !== HoverState.ACTIVE && tip.parentNode) { tip.parentNode.removeChild(tip); @@ -291,6 +300,7 @@ var Tooltip = function ($) { _this2.element.removeAttribute('aria-describedby'); $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + _this2._isTransitioning = false; _this2.cleanupTether(); if (callback) { @@ -307,7 +317,7 @@ var Tooltip = function ($) { $(tip).removeClass(ClassName.ACTIVE); if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { - + this._isTransitioning = true; $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); } else { complete(); |