fix for #4204, fadeTo shows hidden elements before animating
[jquery.git] / src / fx.js
index 724e21f..45c2389 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -46,12 +46,12 @@ jQuery.fn.extend({
                                        
                                        jQuery.data(this[i], "olddisplay", display);
                                }
+                       }
 
-                               // Set the display of the elements in a second loop
-                               // to avoid the constant reflow
-                               for ( var i = 0, l = this.length; i < l; i++ ){
-                                       this[i].style.display = jQuery.data(this[i], "olddisplay");
-                               }
+                       // Set the display of the elements in a second loop
+                       // to avoid the constant reflow
+                       for ( var i = 0, l = this.length; i < l; i++ ){
+                               this[i].style.display = jQuery.data(this[i], "olddisplay") || "";
                        }
                        
                        return this;
@@ -95,7 +95,8 @@ jQuery.fn.extend({
        },
 
        fadeTo: function(speed,to,callback){
-               return this.animate({opacity: to}, speed, callback);
+               return this.filter(":hidden").css('opacity', 0).show().end()
+                                       .animate({opacity: to}, speed, callback);
        },
 
        animate: function( prop, speed, easing, callback ) {