Fix tooltip occasionally not hiding when using a hide delay

Fixes #14375.
Closes #14519 by merging it.
This commit is contained in:
Phil Hughes 2014-09-03 13:11:40 +01:00 committed by Heinrich Fenkart
parent 783eced7ab
commit 9740d8bb69
2 changed files with 33 additions and 0 deletions

View File

@ -928,6 +928,36 @@ $(function () {
$tooltip.trigger('mouseenter')
})
test('should hide tip after hide delay even if moused left before end of fade in', function () {
stop()
var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip for test"/>')
.appendTo('#qunit-fixture')
.bootstrapTooltip({ delay: { show: 10, hide: 10 }})
setTimeout(function () {
ok(!$tooltip.data('bs.tooltip').$tip, '1ms: tooltip exists')
setTimeout(function () {
ok($tooltip.data('bs.tooltip').$tip.is('.fade.in'), '10ms: tooltip faded in')
}, 10)
setTimeout(function () {
ok($tooltip.data('bs.tooltip').$tip.is('.fade.in'), '15ms: tooltip faded in')
$tooltip.trigger('mouseout')
}, 15)
setTimeout(function () {
ok(!$tooltip.data('bs.tooltip').$tip.is('.fade.in'), '30ms: tooltip faded out')
start()
}, 30)
}, 0)
$tooltip.trigger('mouseenter')
})
test('should correctly position tooltips on SVG elements', function () {
if (!window.SVGElement) {
// Skip IE8 since it doesn't support SVG

View File

@ -207,8 +207,11 @@
this.applyPlacement(calculatedOffset, placement)
var complete = function () {
var prevHoverState = that.hoverState
that.$element.trigger('shown.bs.' + that.type)
that.hoverState = null
if (prevHoverState == 'out') that.leave(that)
}
$.support.transition && this.$tip.hasClass('fade') ?