diff options
author | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2011-05-02 13:11:58 +0200 |
---|---|---|
committer | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2011-05-02 13:11:58 +0200 |
commit | a03c222f05aa2364189d264377e0a19da4d4c9ad (patch) | |
tree | 9dbc9ba987a02504d99792d0728b6a8154089937 | |
parent | 3bb9ab262670328de9eb9a97892e9cf85c55c7d9 (diff) | |
download | jquery-ui-a03c222f05aa2364189d264377e0a19da4d4c9ad.tar.gz jquery-ui-a03c222f05aa2364189d264377e0a19da4d4c9ad.zip |
Tooltip: Overhaul widget animations code to allow delay with plain show/hide
-rw-r--r-- | demos/tooltip/custom-animation.html | 8 | ||||
-rw-r--r-- | ui/jquery.ui.widget.js | 21 |
2 files changed, 21 insertions, 8 deletions
diff --git a/demos/tooltip/custom-animation.html b/demos/tooltip/custom-animation.html index d0689a0eb..ef8857979 100644 --- a/demos/tooltip/custom-animation.html +++ b/demos/tooltip/custom-animation.html @@ -17,8 +17,8 @@ delay: 250 }, hide: { - effect: "slideUp", - delay: 500 + effect: "hide", + delay: 250 } }); }); @@ -47,7 +47,9 @@ <div class="demo-description"> -<p>Here the tooltips are positioned relative to the mouse, and follow the mouse while it moves above the element.</p> +<p>This demo shows how to customize animations. The tooltip is shown, after a +delay of 250ms, using a slide down animation, and hidden, after another delay, +without an animation.</p> </div><!-- End demo-description --> diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index 9634eaa1f..a5c59ad3c 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -365,12 +365,23 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { if ( hasOptions && $.effects && $.effects[ effectName ] ) { element[ method ]( options ); } else if ( element[ effectName ] ) { - element[ effectName ]( options.duration, options.easing, callback ); - } else { - element[ method ](); - if ( callback ) { - callback.call( element[ 0 ] ); + if ( /show|hide/.test( effectName ) ) { + element.queue( function() { + element[ effectName ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + }); + } else { + element[ effectName ]( options.duration, options.easing, callback ); } + } else { + element.queue( function() { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + }); } }; }); |