Fixed an issue that was introduced by [5743] (which didn't have a test case, either...
authorJohn Resig <jeresig@gmail.com>
Fri, 2 Jan 2009 23:32:10 +0000 (23:32 +0000)
committerJohn Resig <jeresig@gmail.com>
Fri, 2 Jan 2009 23:32:10 +0000 (23:32 +0000)
src/fx.js
test/unit/fx.js

index ae472ef..626227d 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -288,12 +288,9 @@ jQuery.fx.prototype = {
                this.options.show = true;
 
                // Begin the animation
-               this.custom(0, this.cur());
-
                // Make sure that we start at a small width/height to avoid any
                // flash of content
-               if ( this.prop == "width" || this.prop == "height" )
-                       this.elem.style[this.prop] = "1px";
+               this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
 
                // Start by showing the element
                jQuery(this.elem).show();
@@ -338,7 +335,7 @@ jQuery.fx.prototype = {
 
                                // Hide the element if the "hide" operation was done
                                if ( this.options.hide )
-                                       this.elem.style.display = "none";
+                                       jQuery(this.elem).hide();
 
                                // Reset the properties, if the item has been hidden or shown
                                if ( this.options.hide || this.options.show )
@@ -382,10 +379,10 @@ jQuery.extend( jQuery.fx, {
                },
 
                _default: function(fx){
-                       if( fx.prop in fx.elem ) 
-                               fx.elem[ fx.prop ] = fx.now;
-                       else if( fx.elem.style )
+                       if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
                                fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+                       else
+                               fx.elem[ fx.prop ] = fx.now;
                }
        }
 });
index 2ee3d30..28fb92d 100644 (file)
@@ -34,6 +34,18 @@ test("animate option (queue === false)", function () {
        });
 });
 
+test("animate non-element", function(){
+       expect(1);
+       stop();
+
+       var obj = { test: 0 };
+
+       jQuery(obj).animate({test: 200}, 200, function(){
+               equals( obj.test, 200, "The custom property should be modified." );
+               start();
+       });
+});
+
 test("stop()", function() {
        expect(3);
        stop();