aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core.js9
-rw-r--r--test/index.html1
-rw-r--r--test/unit/core.js9
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";