css: function( elem, name, extra ) {
// Make sure that we're working with the right name
- var ret, origName = jQuery.camelCase( name ),
- hooks = jQuery.cssHooks[ origName ];
-
- name = jQuery.cssProps[ origName ] || origName;
+ var ret,
+ hooks;
+
+ name = jQuery.camelCase( name );
+ hooks = jQuery.cssHooks[ name ];
+ name = jQuery.cssProps[ name ] || name;
+ // cssFloat needs a special treatment
+ if ( name === 'cssFloat' ) {
+ name = 'float';
+ }
// If a hook was provided get the computed value from there
if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
// Otherwise, if a way to get the computed value exists, use that
} else if ( curCSS ) {
- return curCSS( elem, name, origName );
+ return curCSS( elem, name );
}
},
});
if ( document.defaultView && document.defaultView.getComputedStyle ) {
- getComputedStyle = function( elem, newName, name ) {
+ getComputedStyle = function( elem, name ) {
var ret, defaultView, computedStyle;
name = name.replace( rupper, "-$1" ).toLowerCase();
equals($div.css("marginRight"), "0px");
});
+
+test("jQuery.cssProps behavior, (bug #8402)", function() {
+ var div = jQuery( "<div>" ).appendTo(document.body).css({
+ position: "absolute",
+ top: 0,
+ left: 10
+ });
+ jQuery.cssProps.top = "left";
+ equal( div.css("top"), "10px", "the fixed property is used when accessing the computed style");
+ div.css("top", "100px");
+ equal( div[0].style.left, "100px", "the fixed property is used when setting the style");
+ // cleanup jQuery.cssProps
+ jQuery.cssProps.top = undefined;
+});
\ No newline at end of file