diff --git a/src/aui-tooltip/assets/aui-tooltip-base-core.css b/src/aui-tooltip/assets/aui-tooltip-base-core.css new file mode 100644 index 00000000000..a670abb3ece --- /dev/null +++ b/src/aui-tooltip/assets/aui-tooltip-base-core.css @@ -0,0 +1,3 @@ +.tooltip-hidden { + z-index: -1 !important; +} diff --git a/src/aui-tooltip/js/aui-tooltip-base.js b/src/aui-tooltip/js/aui-tooltip-base.js index c70ca338194..165b8f387c4 100644 --- a/src/aui-tooltip/js/aui-tooltip-base.js +++ b/src/aui-tooltip/js/aui-tooltip-base.js @@ -52,7 +52,6 @@ A.Tooltip = A.Base.create(TOOLTIP, A.Widget, [ A.WidgetPositionAlign, A.WidgetPositionAlignSuggestion, A.WidgetPositionConstrain, - A.WidgetStack, A.WidgetTrigger ], { /** @@ -101,15 +100,18 @@ A.Tooltip = A.Base.create(TOOLTIP, A.Widget, [ * @protected */ bindUI: function() { - var instance = this; + var instance = this, + trigger = instance.get(TRIGGER); // Do not bind the synthetic hover event to the widget dom events // wrapper api. Hover bind method has a different method signature which // is not handled by widget yet. Bind to the `boundingBox` instead. - instance.get(TRIGGER).on( - HOVER, - A.bind(instance._onBoundingBoxMouseenter, this) - ); + if (trigger) { + trigger.on( + HOVER, + A.bind(instance._onBoundingBoxMouseenter, instance), + A.bind(instance._onBoundingBoxMouseleave, instance)); + } instance.get(BOUNDING_BOX).on( HOVER, @@ -137,14 +139,17 @@ A.Tooltip = A.Base.create(TOOLTIP, A.Widget, [ * @protected */ _afterUiSetVisible: function(val) { - var instance = this; + var instance = this, + stickDuration = instance.get(STICK_DURATION); if (val) { instance._loadBodyContentFromTitle(); instance._maybeShow(); } else { - instance._maybeHide(); + if (!A.Lang.isNumber(stickDuration)) { + instance._maybeHide(); + } } }, @@ -225,6 +230,7 @@ A.Tooltip = A.Base.create(TOOLTIP, A.Widget, [ } else { instance._transition(); + instance.hide(); } }, @@ -285,6 +291,10 @@ A.Tooltip = A.Base.create(TOOLTIP, A.Widget, [ }, function() { boundingBox.toggleClass(IN, fadeIn); + + if (!fadeIn) { + instance.hide(); + } } ); } @@ -364,17 +374,6 @@ A.Tooltip = A.Base.create(TOOLTIP, A.Widget, [ validator: A.Lang.isNumber }, - /** - * DOM event to hide the tooltip. - * - * @attribute triggerHideEvent - * @default mouseleave - * @type String - */ - triggerHideEvent: { - value: MOUSELEAVE - }, - /** * DOM event to show the tooltip. *