Make sure that jQuery works even when the individual modules are loaded separately...
[jquery.git] / src / dimensions.js
index 3acbb1d..58c16af 100644 (file)
@@ -1,3 +1,5 @@
+(function( jQuery ) {
+
 // Create innerHeight, innerWidth, outerHeight and outerWidth methods
 jQuery.each([ "Height", "Width" ], function( i, name ) {
 
@@ -6,14 +8,14 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
        // innerHeight and innerWidth
        jQuery.fn["inner" + name] = function() {
                return this[0] ?
-                       jQuery.css( this[0], type, false, "padding" ) :
+                       jQuery.css( this[0], type, undefined, false, "padding" ) :
                        null;
        };
 
        // outerHeight and outerWidth
        jQuery.fn["outer" + name] = function( margin ) {
                return this[0] ?
-                       jQuery.css( this[0], type, false, margin ? "margin" : "border" ) :
+                       jQuery.css( this[0], type, undefined, false, margin ? "margin" : "border" ) :
                        null;
        };
 
@@ -23,6 +25,13 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
                if ( !elem ) {
                        return size == null ? null : this;
                }
+               
+               if ( jQuery.isFunction( size ) ) {
+                       return this.each(function( i ) {
+                               var self = jQuery( this );
+                               self[ type ]( size.call( this, i, self[ type ]() ) );
+                       });
+               }
 
                return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window?
                        // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
@@ -48,3 +57,5 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
        };
 
 });
+
+})( jQuery );