Added in some more bug fixes - and added the slideToggle method.
[jquery.git] / src / fx / fx.js
index de65cfa..3e8885d 100644 (file)
@@ -141,6 +141,13 @@ jQuery.fn.extend({
        slideUp: function(speed,callback){
                return this.animate({height: "hide"}, speed, callback);
        },
+
+       slideToggle: function(speed,callback){
+               return this.each(function(){
+                       var state = $(this).is(":hidden") ? "show" : "hide";
+                       $(this).animate({height: state}, speed, callback);
+               });
+       },
        
        /**
         * Fade in all matched elements by adjusting their opacity.
@@ -373,7 +380,8 @@ jQuery.extend({
                // The users options
                z.o = {
                        duration: options.duration || 400,
-                       complete: options.complete
+                       complete: options.complete,
+                       step: options.step
                };
        
                // The element
@@ -384,6 +392,9 @@ jQuery.extend({
        
                // Simple function for setting a style value
                z.a = function(){
+                       if ( options.step )
+                               options.step.apply( elem, [ z.now ] );
+
                        if ( prop == "opacity" ) {
                                if (z.now == 1) z.now = 0.9999;
                                if (window.ActiveXObject)
@@ -481,7 +492,8 @@ jQuery.extend({
                                                z.el.orig[prop] + "px" : z.el.orig[prop];
 
                                // set its height and/or width to auto
-                               jQuery.setAuto( z.el, prop );
+                               if ( prop == 'height' || prop == 'width' )
+                                       jQuery.setAuto( z.el, prop );
 
                                // If a callback was provided, execute it
                                if( z.o.complete && z.o.complete.constructor == Function )