Fix for jQuery.clean that caused Safari to crash with newline characters
[jquery.git] / src / fx / fx.js
index fe1c1e2..3fd4990 100644 (file)
@@ -305,6 +305,14 @@ jQuery.fn.extend({
         *   left: 50, opacity: 'show'
         * }, 500);
         *
+        * @test stop();
+        * var hash = {opacity: 'show'};
+        * var hashCopy = $.extend({}, hash);
+        * $('#foo').animate(hash, 'fast', function() {
+        *  ok( hash.opacity == hashCopy.opacity, 'Check if animate changed the hash parameter' );
+        *  start();
+        * });
+        *
         * @name animate
         * @type jQuery
         * @param Hash params A set of style attributes that you wish to animate, and to what end.
@@ -315,7 +323,7 @@ jQuery.fn.extend({
        animate: function(prop,speed,callback) {
                return this.queue(function(){
                
-                       this.curAnim = prop;
+                       this.curAnim = jQuery.extend({}, prop);
                        
                        for ( var p in prop ) {
                                var e = new jQuery.fx( this, jQuery.speed(speed,callback), p );
@@ -479,17 +487,14 @@ jQuery.extend({
                };
        
                // Simple 'show' function
-               z.show = function( p ){
+               z.show = function(){
                        if ( !z.el.orig ) z.el.orig = {};
 
                        // Remember where we started, so that we can go back to it later
                        z.el.orig[prop] = this.cur();
                        
                        // Begin the animation
-                       if (prop == "opacity")
-                               z.custom(z.el.orig[prop], 1);
-                       else
-                               z.custom(0, z.el.orig[prop]);
+                       z.custom(0, z.el.orig[prop]);
 
                        // Stupid IE, look what you made me do
                        if ( prop != "opacity" )
@@ -510,7 +515,7 @@ jQuery.extend({
                };
        
                // Remember  the overflow of the element
-               if ( !z.el.oldOverlay )
+               if ( !z.el.oldOverflow )
                        z.el.oldOverflow = jQuery.css( z.el, "overflow" );
        
                // Make sure that nothing sneaks out
@@ -546,7 +551,7 @@ jQuery.extend({
                                        // Reset the property, if the item has been hidden
                                        if ( z.o.hide ) {
                                                for ( var p in z.el.curAnim ) {
-                                                       if (p == "opacity" && jQuery.browser.msie)
+                                                       if (p == "opacity")
                                                                jQuery.attr(y, p, z.el.orig[p]);
                                                        else
                                                                y[ p ] = z.el.orig[p] + "px";