Skip to content

Commit aa7f95f

Browse files
maxbeattymdo
authored andcommitted
update click state when hiding so can be shown again by trigger. fixes #16732
1 parent 8a3d0d3 commit aa7f95f

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

js/src/tooltip.js

+4
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,10 @@ const Tooltip = (($) => {
358358

359359
$(tip).removeClass(ClassName.SHOW)
360360

361+
this._activeTrigger[Trigger.CLICK] = false
362+
this._activeTrigger[Trigger.FOCUS] = false
363+
this._activeTrigger[Trigger.HOVER] = false
364+
361365
if (Util.supportsTransitionEnd() &&
362366
$(this.tip).hasClass(ClassName.FADE)) {
363367
this._isTransitioning = true

js/tests/unit/tooltip.js

+21
Original file line numberDiff line numberDiff line change
@@ -818,4 +818,25 @@ $(function () {
818818
})
819819
})
820820

821+
QUnit.test('should show on first trigger after hide', function (assert) {
822+
assert.expect(3)
823+
var $el = $('<a href="#" rel="tooltip" title="Test tooltip"/>')
824+
.appendTo('#qunit-fixture')
825+
.bootstrapTooltip({ trigger: 'click hover focus', animation: false })
826+
827+
var tooltip = $el.data('bs.tooltip')
828+
var $tooltip = $(tooltip.getTipElement())
829+
830+
function showingTooltip() { return $tooltip.hasClass('show') || tooltip._hoverState === 'show' }
831+
832+
$el.trigger('click')
833+
assert.ok(showingTooltip(), 'tooltip is faded in')
834+
835+
$el.bootstrapTooltip('hide')
836+
assert.ok(!showingTooltip(), 'tooltip was faded out')
837+
838+
$el.trigger('click')
839+
assert.ok(showingTooltip(), 'tooltip is faded in again')
840+
})
841+
821842
})

0 commit comments

Comments
 (0)