X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=0bf353074edc2f6c262ce85fc8042474591cef00;hb=aca1cc367782f8d038a13794a46aec6fd825eb45;hp=b701abea991389e28a9f27a4bd3ec64ad16f97d5;hpb=2ccd2cb36be6169afee3bd6e82ba3539f432c73f;p=jquery.git diff --git a/src/core.js b/src/core.js index b701abe..0bf3530 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, @@ -393,7 +396,7 @@ jQuery.fn = jQuery.prototype = { // Everything else, we just grab the value } else - return this[0].value.replace(/\r/g, ""); + return (this[0].value || "").replace(/\r/g, ""); } @@ -546,7 +549,7 @@ jQuery.extend = jQuery.fn.extend = function() { continue; // Recurse if we're merging object values - if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType ) + if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType ) target[ name ] = jQuery.extend( target[ name ], options[ name ] ); // Don't bring in undefined values @@ -588,7 +591,6 @@ jQuery.extend({ }, // Evalulates a script in a global context - // Evaluates Async. in Safari 2 :-( globalEval: function( data ) { data = jQuery.trim( data ); @@ -1039,7 +1041,8 @@ jQuery.extend({ if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) throw "type property can't be changed"; - elem.setAttribute( name, value ); + // convert the value to a string (all browsers do this but IE) see #1070 + elem.setAttribute( name, "" + value ); } if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) ) @@ -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