diff --git a/demos/tooltip/custom-animation.html b/demos/tooltip/custom-animation.html
index d32bba0d2..d0689a0eb 100644
--- a/demos/tooltip/custom-animation.html
+++ b/demos/tooltip/custom-animation.html
@@ -13,10 +13,12 @@
$(function() {
$(".demo").tooltip({
show: {
- effect: "slideDown"
+ effect: "slideDown",
+ delay: 250
},
hide: {
- effect: "slideUp"
+ effect: "slideUp",
+ delay: 500
}
});
});
diff --git a/ui/jquery.ui.tooltip.js b/ui/jquery.ui.tooltip.js
index c481f6264..bbf58c2a1 100644
--- a/ui/jquery.ui.tooltip.js
+++ b/ui/jquery.ui.tooltip.js
@@ -90,7 +90,7 @@ $.widget("ui.tooltip", {
of: target
}, this.options.position ) ).hide();
-
+ tooltip.stop( true );
this._show( tooltip, this.options.show );
this._trigger( "open", event );
@@ -111,7 +111,7 @@ $.widget("ui.tooltip", {
var tooltip = this._find( target );
target.removeAttr( "aria-describedby" );
- tooltip.stop();
+ tooltip.stop( true );
this._hide( tooltip, this.options.hide, function() {
$( this ).remove();
});
diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js
index 9593c1eaf..9634eaa1f 100644
--- a/ui/jquery.ui.widget.js
+++ b/ui/jquery.ui.widget.js
@@ -359,7 +359,9 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
var hasOptions = !$.isEmptyObject( options ),
effectName = options.effect || defaultEffect;
options.complete = callback;
-
+ if (options.delay) {
+ element.delay( options.delay );
+ }
if ( hasOptions && $.effects && $.effects[ effectName ] ) {
element[ method ]( options );
} else if ( element[ effectName ] ) {