]> source.dussan.org Git - jquery.git/commitdiff
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 3b74ded9b839c089d2faed74ce921b6eb53788f0..d3c8418db671da23d8f35b566c0963a0697307af 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 f365f928925615c500ce94c50113a6e60dbf0dbf..8653de42caf389530ee65af8c1b1046493b2e038 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
+});