Bug 7345; Add support for explicit/relative string values in .css - modified from original pull req by brandonaron #78

This commit is contained in:
Dan Heberden 2011-04-04 11:21:15 -07:00
parent 2ed81b44be
commit 123dd72e80
2 changed files with 30 additions and 1 deletions

View file

@ -7,6 +7,8 @@ var ralpha = /alpha\([^)]*\)/i,
rupper = /([A-Z]|^ms)/g,
rnumpx = /^-?\d+(?:px)?$/i,
rnum = /^-?\d/,
rrelNum = /=/,
rrelString = /[^+\-\de]+/g,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssWidth = [ "Left", "Right" ],
@ -75,7 +77,7 @@ jQuery.extend({
}
// Make sure that we're working with the right name
var ret, origName = jQuery.camelCase( name ),
var ret, parsed, type, origName = jQuery.camelCase( name ),
style = elem.style, hooks = jQuery.cssHooks[ origName ];
name = jQuery.cssProps[ origName ] || origName;
@ -87,6 +89,12 @@ jQuery.extend({
return;
}
// convert string to number or relative number
if ( type === "string" ) {
parsed = +value.replace( rrelString, '' );
value = rrelNum.test( value ) ? parsed + jQuery.css( elem, name ) : parsed;
}
// If a number was passed in, add 'px' to the (except for certain CSS properties)
if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
value += "px";