From e502012c0f8e7604eaabe4065ba769af04eec180 Mon Sep 17 00:00:00 2001 From: Mike Sherov Date: Sat, 22 Oct 2011 16:08:14 -0400 Subject: [PATCH] Landing pull request 553. Fallback to elem.style for disconnected nodes in width/height retrieval. Fixes #8388. More Details: - https://github.com/jquery/jquery/pull/553 - http://bugs.jquery.com/ticket/10254 - http://bugs.jquery.com/ticket/8388 --- src/css.js | 4 ++++ test/unit/css.js | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/css.js b/src/css.js index 2adfdffe1..ba645fb46 100644 --- a/src/css.js +++ b/src/css.js @@ -290,6 +290,10 @@ if ( document.documentElement.currentStyle ) { rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ], style = elem.style; + if ( ret === null && style ) { + ret = style[ name ]; + } + // From the awesome hack by Dean Edwards // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 diff --git a/test/unit/css.js b/test/unit/css.js index 78c6def61..7e9509593 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -435,7 +435,7 @@ test(":visible selector works properly on children with a hidden parent (bug #45 test("internal ref to elem.runtimeStyle (bug #7608)", function () { expect(1); var result = true; - + try { jQuery("#foo").css( { width: "0%" } ).css("width"); } catch (e) { @@ -476,7 +476,7 @@ test("widows & orphans #8936", function () { var $p = jQuery("

").appendTo("#qunit-fixture"); if ( "widows" in $p[0].style ) { - expect(4); + expect(4); $p.css({ widows: 0, orphans: 0 @@ -502,6 +502,15 @@ test("widows & orphans #8936", function () { $p.remove(); }); +test("can't get css for disconnected in IE<9, see #10254 and #8388", function() { + expect( 2 ); + var span = jQuery( "" ).css( "background-image", "url(http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif)" ); + equal( span.css( "background-image" ), "url(http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif)", "can't get background-image in IE<9, see #10254" ); + + var div = jQuery( "

" ).css( "top", 10 ); + equal( div.css( "top" ), "10px", "can't get top in IE<9, see #8388" ); +}); + test("Do not append px to 'fill-opacity' #9548", 1, function() { var $div = jQuery("
").appendTo("#qunit-fixture"); @@ -510,4 +519,4 @@ test("Do not append px to 'fill-opacity' #9548", 1, function() { equal( jQuery(this).css("fill-opacity"), 1, "Do not append px to 'fill-opacity'"); }); -}); +}); \ No newline at end of file