]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
update click state when hiding so can be shown again by trigger. fixes #16732
authorMax Beatty <max@beatty.me>
Tue, 27 Dec 2016 00:21:27 +0000 (16:21 -0800)
committerMark Otto <markd.otto@gmail.com>
Tue, 27 Dec 2016 22:19:12 +0000 (14:19 -0800)
js/src/tooltip.js
js/tests/unit/tooltip.js

index 024035fe4e23d24876dfd41c4da6ba788b3eba01..0c1d381b90dff36806d6f27f23879ec36c35358c 100644 (file)
@@ -358,6 +358,10 @@ const Tooltip = (($) => {
 
       $(tip).removeClass(ClassName.SHOW)
 
+      this._activeTrigger[Trigger.CLICK] = false
+      this._activeTrigger[Trigger.FOCUS] = false
+      this._activeTrigger[Trigger.HOVER] = false
+
       if (Util.supportsTransitionEnd() &&
           $(this.tip).hasClass(ClassName.FADE)) {
         this._isTransitioning = true
index 1e59f0958fd5657b188d667cdd17e36e17d9c822..7ff967fabc8e64cfccbe9490c545c3ba19041708 100644 (file)
@@ -818,4 +818,25 @@ $(function () {
     })
   })
 
+  QUnit.test('should show on first trigger after hide', function (assert) {
+    assert.expect(3)
+    var $el = $('<a href="#" rel="tooltip" title="Test tooltip"/>')
+      .appendTo('#qunit-fixture')
+      .bootstrapTooltip({ trigger: 'click hover focus', animation: false })
+
+    var tooltip = $el.data('bs.tooltip')
+    var $tooltip = $(tooltip.getTipElement())
+
+    function showingTooltip() { return $tooltip.hasClass('show') || tooltip._hoverState === 'show' }
+
+    $el.trigger('click')
+    assert.ok(showingTooltip(), 'tooltip is faded in')
+
+    $el.bootstrapTooltip('hide')
+    assert.ok(!showingTooltip(), 'tooltip was faded out')
+
+    $el.trigger('click')
+    assert.ok(showingTooltip(), 'tooltip is faded in again')
+  })
+
 })