Fixed #1599 as Brandon suggested to ignore negative values to width and height css...
authorDavid Serduke <davidserduke@gmail.com>
Wed, 28 Nov 2007 01:01:49 +0000 (01:01 +0000)
committerDavid Serduke <davidserduke@gmail.com>
Wed, 28 Nov 2007 01:01:49 +0000 (01:01 +0000)
src/core.js
test/index.html
test/unit/core.js

index b701abe..ce26519 100644 (file)
@@ -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
index 80b947d..2b0b685 100644 (file)
@@ -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>
index 229ad2a..cea8c61 100644 (file)
@@ -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";