Skip to content
Permalink
Browse files

Fixed a problem with animations with a duration of 0 not working prop…

…erly for hide and show.
  • Loading branch information
jeresig committed Nov 30, 2009
1 parent 21dead4 commit 25c188b6d2b8a8758c2bd97ca45e0fb14b869431
Showing with 22 additions and 17 deletions.
  1. +4 −4 src/fx.js
  2. +18 −13 test/unit/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++ ){
@@ -86,43 +86,48 @@ 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();
});

var $elem = jQuery("<div />");
$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");
});
});

0 comments on commit 25c188b

Please sign in to comment.
You can’t perform that action at this time.