From: jeresig Date: Mon, 30 Nov 2009 19:22:24 +0000 (-0500) Subject: Fixed a problem with animations with a duration of 0 not working properly for hide... X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=25c188b6d2b8a8758c2bd97ca45e0fb14b869431;p=jquery.git Fixed a problem with animations with a duration of 0 not working properly for hide and show. --- diff --git a/src/fx.js b/src/fx.js index 46000a5..d8340b1 100644 --- a/src/fx.js +++ b/src/fx.js @@ -18,8 +18,8 @@ function genFx( type, num ){ } jQuery.fn.extend({ - show: function(speed,callback){ - if ( speed ) { + show: function( speed, callback ) { + if ( typeof speed !== "undefined" ) { return this.animate( genFx("show", 3), speed, callback); } else { for ( var i = 0, l = this.length; i < l; i++ ){ @@ -58,8 +58,8 @@ jQuery.fn.extend({ } }, - hide: function(speed,callback){ - if ( speed ) { + hide: function( speed, callback ) { + if ( typeof speed !== "undefined" ) { return this.animate( genFx("hide", 3), speed, callback); } else { for ( var i = 0, l = this.length; i < l; i++ ){ diff --git a/test/unit/fx.js b/test/unit/fx.js index e1793ec..da22de2 100644 --- a/test/unit/fx.js +++ b/test/unit/fx.js @@ -86,32 +86,37 @@ test("animate with no properties", function() { }); test("animate duration 0", function() { - expect(7); + expect(11); stop(); - var $elems = jQuery([{ a:0 },{ a:0 }]), - counter = 0, - count = function(){ - counter++; - }; + var $elems = jQuery([{ a:0 },{ a:0 }]), counter = 0; equals( jQuery.timers.length, 0, "Make sure no animation was running from another test" ); - $elems.eq(0).animate( {a:1}, 0, count ); + $elems.eq(0).animate( {a:1}, 0, function(){ + ok( true, "Animate a simple property." ); + counter++; + }); // Failed until [6115] equals( jQuery.timers.length, 0, "Make sure synchronic animations are not left on jQuery.timers" ); equals( counter, 1, "One synchronic animations" ); - $elems.animate( { a:2 }, 0, count ); + $elems.animate( { a:2 }, 0, function(){ + ok( true, "Animate a second simple property." ); + counter++; + }); equals( counter, 3, "Multiple synchronic animations" ); - $elems.eq(0).animate( {a:3}, 0, count ); - $elems.eq(1).animate( {a:3}, 20, function(){ - count(); + $elems.eq(0).animate( {a:3}, 0, function(){ + ok( true, "Animate a third simple property." ); + counter++; + }); + $elems.eq(1).animate( {a:3}, 200, function(){ + counter++; // Failed until [6115] equals( counter, 5, "One synchronic and one asynchronic" ); start(); @@ -119,10 +124,10 @@ test("animate duration 0", function() { var $elem = jQuery("
"); $elem.show(0, function(){ - ok(true, "Show's callback with no duration"); + ok(true, "Show callback with no duration"); }); $elem.hide(0, function(){ - ok(true, "Show's callback with no duration"); + ok(true, "Hide callback with no duration"); }); });