Commit 0a755f6a authored by David Serduke's avatar David Serduke

Fixed #1599 as Brandon suggested to ignore negative values to width and height...

Fixed #1599 as Brandon suggested to ignore negative values to width and height css.  The fix itself is slightly different as it was moved to .css() instead of staying in .attr() like in his patch.  I decided there was less chance of incorrect behavior (like if someone had an XML file with a width attribute that could be negative).  Also took out some unneeded white space while I was in there.
parent 2ccd2cb3
...@@ -43,7 +43,7 @@ jQuery.fn = jQuery.prototype = { ...@@ -43,7 +43,7 @@ jQuery.fn = jQuery.prototype = {
return this; return this;
// Handle HTML strings // Handle HTML strings
} else if ( typeof selector == "string" ) { } else if ( typeof selector == "string" ) {
// Are we dealing with HTML string or an ID? // Are we dealing with HTML string or an ID?
var match = quickExpr.exec( selector ); var match = quickExpr.exec( selector );
...@@ -194,6 +194,9 @@ jQuery.fn = jQuery.prototype = { ...@@ -194,6 +194,9 @@ jQuery.fn = jQuery.prototype = {
}, },
css: function( key, value ) { 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" ); return this.attr( key, value, "curCSS" );
}, },
...@@ -360,7 +363,7 @@ jQuery.fn = jQuery.prototype = { ...@@ -360,7 +363,7 @@ jQuery.fn = jQuery.prototype = {
if ( this.length ) { if ( this.length ) {
var elem = this[0]; var elem = this[0];
// We need to handle select boxes special // We need to handle select boxes special
if ( jQuery.nodeName( elem, "select" ) ) { if ( jQuery.nodeName( elem, "select" ) ) {
var index = elem.selectedIndex, var index = elem.selectedIndex,
...@@ -1321,7 +1324,7 @@ jQuery.each([ "Height", "Width" ], function(i, name){ ...@@ -1321,7 +1324,7 @@ jQuery.each([ "Height", "Width" ], function(i, name){
this[0] == document ? this[0] == document ?
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater (Mozilla reports scrollWidth the same as offsetWidth) // 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 ] ) : Math.max( document.body[ "scroll" + name ], document.body[ "offset" + name ] ) :
// Get or set width or height on the element // Get or set width or height on the element
size == undefined ? size == undefined ?
// Get width or height on the element // Get width or height on the element
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
<h2 id="userAgent"></h2> <h2 id="userAgent"></h2>
<!-- Test HTML --> <!-- Test HTML -->
<div id="nothiddendiv" style="height:1px;background:white;"></div>
<dl id="dl" style="display:none;"> <dl id="dl" style="display:none;">
<div id="main" 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> <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>
......
...@@ -410,6 +410,15 @@ test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", funct ...@@ -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." ); 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() { test("text()", function() {
expect(1); expect(1);
var expected = "This link has class=\"blog\": Simon Willison's Weblog"; var expected = "This link has class=\"blog\": Simon Willison's Weblog";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment