jquery fx: Fixed redundant code
[jquery.git] / src / fx.js
index 626119b..794b96f 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -18,7 +18,7 @@ jQuery.fn.extend({
                                        if ( elemdisplay[ tagName ] ) {
                                                display = elemdisplay[ tagName ];
                                        } else {
-                                               var elem = jQuery("<" + this[i].tagName + " />").appendTo("body");
+                                               var elem = jQuery("<" + tagName + " />").appendTo("body");
                                                
                                                display = elem.css("display");
                                                if ( display === "none" )
@@ -26,7 +26,7 @@ jQuery.fn.extend({
                                                
                                                elem.remove();
                                                
-                                               elemdisplay[ this[i].tagName ] = display;
+                                               elemdisplay[ tagName ] = display;
                                        }
                                        
                                        this[i].style.display = jQuery.data(this[i], "olddisplay", display);
@@ -57,15 +57,18 @@ jQuery.fn.extend({
        _toggle: jQuery.fn.toggle,
 
        toggle: function( fn, fn2 ){
+               var bool = typeof fn === "boolean";
+
                return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
                        this._toggle.apply( this, arguments ) :
-                       fn ?
+                       fn == null || bool ?
+                               this.each(function(){
+                                       var state = bool ? fn : jQuery(this).is(":hidden");
+                                       jQuery(this)[ state ? "show" : "hide" ]();
+                               }) :
                                this.animate({
                                        height: "toggle", width: "toggle", opacity: "toggle"
-                               }, fn, fn2) :
-                               this.each(function(){
-                                       jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
-                               });
+                               }, fn, fn2);
        },
 
        fadeTo: function(speed,to,callback){