diff options
-rw-r--r-- | src/core.js | 9 | ||||
-rw-r--r-- | test/index.html | 1 | ||||
-rw-r--r-- | test/unit/core.js | 9 |
3 files changed, 16 insertions, 3 deletions
diff --git a/src/core.js b/src/core.js index b701abea9..ce2651963 100644 --- a/src/core.js +++ b/src/core.js @@ -43,7 +43,7 @@ jQuery.fn = jQuery.prototype = { return this; // Handle HTML strings - } else if ( typeof selector == "string" ) { + } else if ( typeof selector == "string" ) { // Are we dealing with HTML string or an ID? var match = quickExpr.exec( selector ); @@ -194,6 +194,9 @@ jQuery.fn = jQuery.prototype = { }, css: function( key, value ) { + // ignore negative width and height values + if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) + value = undefined; return this.attr( key, value, "curCSS" ); }, @@ -360,7 +363,7 @@ jQuery.fn = jQuery.prototype = { if ( this.length ) { var elem = this[0]; - + // We need to handle select boxes special if ( jQuery.nodeName( elem, "select" ) ) { var index = elem.selectedIndex, @@ -1321,7 +1324,7 @@ jQuery.each([ "Height", "Width" ], function(i, name){ this[0] == document ? // Either scroll[Width/Height] or offset[Width/Height], whichever is greater (Mozilla reports scrollWidth the same as offsetWidth) Math.max( document.body[ "scroll" + name ], document.body[ "offset" + name ] ) : - + // Get or set width or height on the element size == undefined ? // Get width or height on the element diff --git a/test/index.html b/test/index.html index 80b947d45..2b0b685fc 100644 --- a/test/index.html +++ b/test/index.html @@ -20,6 +20,7 @@ <h2 id="userAgent"></h2> <!-- Test HTML --> + <div id="nothiddendiv" style="height:1px;background:white;"></div> <dl id="dl" style="display:none;"> <div id="main" style="display: none;"> <p id="firstp">See <a id="simon1" href="http://simon.incutio.com/archive/2003/03/25/#getElementsBySelector" rel="bookmark">this blog entry</a> for more information.</p> diff --git a/test/unit/core.js b/test/unit/core.js index 229ad2ac4..cea8c61e3 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -410,6 +410,15 @@ test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", funct ok( ! $(":checkbox:last", $checkedtest).attr("checked"), "Check last checkbox still NOT checked." ); }); +test("width()", function() { + expect(2); + + $("#nothiddendiv").width(30); + equals($("#nothiddendiv").width(), 30, "Test set to 30 correctly"); + $("#nothiddendiv").width(-1); // handle negative numbers by ignoring #1599 + equals($("#nothiddendiv").width(), 30, "Test negative width ignored"); +}); + test("text()", function() { expect(1); var expected = "This link has class=\"blog\": Simon Willison's Weblog"; |