Make sure that calling .width(num) or .height(num) on an empty set returns the empty...
authorJohn Resig <jeresig@gmail.com>
Thu, 10 Dec 2009 05:58:29 +0000 (21:58 -0800)
committerJohn Resig <jeresig@gmail.com>
Thu, 10 Dec 2009 05:58:29 +0000 (21:58 -0800)
src/dimensions.js
test/unit/dimensions.js

index 3b74ded..d3c8418 100644 (file)
@@ -20,7 +20,10 @@ jQuery.each([ "Height", "Width" ], function(i, name){
        jQuery.fn[ type ] = function( size ) {
                // Get window width or height
                var elem = this[0];
-               if ( !elem ) { return null; }
+               if ( !elem ) {
+                       return size == null ? null : this;
+               }
+
                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
                        elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] ||
index f365f92..8653de4 100644 (file)
@@ -1,7 +1,7 @@
 module("dimensions");
 
 test("width()", function() {
-       expect(6);
+       expect(7);
 
        var $div = jQuery("#nothiddendiv");
        $div.width(30);
@@ -28,10 +28,13 @@ test("width()", function() {
        jQuery("#nothiddendivchild").css({ padding: "3px", border: "2px solid #fff" });
        equals(jQuery("#nothiddendivchild").width(), 20, "Test child width with border and padding");
        jQuery("#nothiddendiv, #nothiddendivchild").css({ border: "", padding: "", width: "" });
+
+       var blah = jQuery("blah");
+       equals( blah.width(10), blah, "Make sure that setting a width on an empty set returns the set." );
 });
 
 test("height()", function() {
-       expect(5);
+       expect(6);
 
        var $div = jQuery("#nothiddendiv");
        $div.height(30);
@@ -54,6 +57,9 @@ test("height()", function() {
        //equals($div.height(), 30, "Test padding specified with percent");
 
        $div.css({ display: "", border: "", padding: "", height: "1px" });
+
+       var blah = jQuery("blah");
+       equals( blah.height(10), blah, "Make sure that setting a height on an empty set returns the set." );
 });
 
 test("innerWidth()", function() {
@@ -139,4 +145,4 @@ test("outerHeight()", function() {
        
        // reset styles
        $div.css({ display: "", border: "", padding: "", width: "", height: "" });
-});
\ No newline at end of file
+});