Bug Tracker

Ticket #4481: jquery.patch

File jquery.patch, 2.5 KB (added by DmitryBaranovskiy, 11 years ago)

Patch for curCSS method

  • .js

    old new  
    32853285                        // We should always get a number back from opacity
    32863286                        if ( name == "opacity" && ret == "" )
    32873287                                ret = "1";
     3288                        // For sake of consistency with MS style of return values for margin and padding
     3289                        if ( prop == "padding" ) {
     3290                                ret =   computedStyle.getPropertyValue("padding-top") + " " +
     3291                                                computedStyle.getPropertyValue("padding-right") + " " +
     3292                                                computedStyle.getPropertyValue("padding-bottom") + " " +
     3293                                                computedStyle.getPropertyValue("padding-left");
     3294                        } else if ( prop == "margin" ) {
     3295                                ret =   computedStyle.getPropertyValue("margin-top") + " " +
     3296                                                computedStyle.getPropertyValue("margin-right") + " " +
     3297                                                computedStyle.getPropertyValue("margin-bottom") + " " +
     3298                                                computedStyle.getPropertyValue("margin-left");
     3299                        }
     3300           
    32883301
    32893302                } else if ( elem.currentStyle ) {
    32903303                        var camelCase = name.replace(/\-(\w)/g, function(all, letter){
     
    32983311
    32993312                        // If we're not dealing with a regular pixel number
    33003313                        // but a number that has a weird ending, we need to convert it to pixels
    3301                         if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
    3302                                 // Remember the original values
    3303                                 var left = style.left, rsLeft = elem.runtimeStyle.left;
    3304 
    3305                                 // Put in the new values to get a computed value out
    3306                                 elem.runtimeStyle.left = elem.currentStyle.left;
    3307                                 style.left = ret || 0;
    3308                                 ret = style.pixelLeft + "px";
    3309 
    3310                                 // Revert the changed values
    3311                                 style.left = left;
    3312                                 elem.runtimeStyle.left = rsLeft;
     3314                        ret = ( ret + "" ).split( " " );
     3315                        for (var i = ret.length; i--;) {
     3316                                if ( ( ret[i] != +ret[i] || propCC == "lineHeight" ) && ( /^[\d\.]+(?!px)(\D\D?)?$/ ).test( ret[i] ) ) {
     3317                                        // Remember the original values
     3318                                        var left = style.left, rsLeft = elem.runtimeStyle.left;
     3319
     3320                                        // Knowing font size is the same as knowing what is 1em for the given element
     3321                                        camelCase == "fontSize" && ( ret[i] = "1em" );
     3322                                        // if "line-height" is just a number then it should be in "em"
     3323                                        camelCase == "lineHeight" && !RegExp.$1 && ( ret[i] += "em" );
     3324
     3325                                        // Put in the new values to get a computed value out
     3326                                        elem.runtimeStyle.left = elem.currentStyle.left;
     3327                                        style.left = ret[i] || 0;
     3328                                        ret[i] = style.pixelLeft + "px";
     3329
     3330                                        // Revert the changed values
     3331                                        style.left = left;
     3332                                        elem.runtimeStyle.left = rsLeft;
     3333                                }
    33133334                        }
     3335                        ret = ret.join(" ");
    33143336                }
    33153337
    33163338                return ret;