mirror of
https://github.com/jquery/jquery.git
synced 2026-01-24 15:08:25 -05:00
Ref #8908. Update IE9 css clone fix. Close gh-1120.
This commit is contained in:
@@ -213,8 +213,8 @@ jQuery.extend({
|
||||
|
||||
// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
|
||||
// but it would mean to define eight (for every problematic property) identical functions
|
||||
if ( value === "" && name.indexOf("background") === 0 ) {
|
||||
value = " ";
|
||||
if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
|
||||
style[ name ] = "inherit";
|
||||
}
|
||||
|
||||
// If a hook was provided, use that value, otherwise just set the specified value
|
||||
|
||||
@@ -138,6 +138,10 @@ jQuery.support = (function() {
|
||||
support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
|
||||
}
|
||||
|
||||
div.style.backgroundClip = "content-box";
|
||||
div.cloneNode().style.backgroundClip = "";
|
||||
support.clearCloneStyle = div.style.backgroundClip === "content-box";
|
||||
|
||||
// Run tests that need a body at doc ready
|
||||
jQuery(function() {
|
||||
var container, marginDiv, tds,
|
||||
|
||||
@@ -923,7 +923,7 @@ test( "css opacity consistency across browsers (#12685)", function() {
|
||||
equal( Math.round( el.css("opacity") * 100 ), 20, "remove opacity override" );
|
||||
});
|
||||
|
||||
asyncTest( "Clearing a Cloned Element's Style Shouldn't Clear the Original Element's Style (#8908)", 16, function() {
|
||||
asyncTest( "Clearing a Cloned Element's Style Shouldn't Clear the Original Element's Style (#8908)", 24, function() {
|
||||
var baseUrl = document.location.href.replace( /([^\/]*)$/, "" ),
|
||||
styles = [{
|
||||
name: "backgroundAttachment",
|
||||
@@ -961,7 +961,7 @@ asyncTest( "Clearing a Cloned Element's Style Shouldn't Clear the Original Eleme
|
||||
expected: [ "auto auto" ]
|
||||
}];
|
||||
|
||||
jQuery.each( styles, function(index, style) {
|
||||
jQuery.each(styles, function( index, style ) {
|
||||
var $clone, $clonedChildren,
|
||||
$source = jQuery( "#firstp" ),
|
||||
source = $source[ 0 ],
|
||||
@@ -972,6 +972,7 @@ asyncTest( "Clearing a Cloned Element's Style Shouldn't Clear the Original Eleme
|
||||
if ( source.style[ style.name ] === undefined ) {
|
||||
ok( true, style.name + ": style isn't supported and therefore not an issue" );
|
||||
ok( true );
|
||||
ok( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -985,6 +986,8 @@ asyncTest( "Clearing a Cloned Element's Style Shouldn't Clear the Original Eleme
|
||||
$clonedChildren.css( style.name, "" );
|
||||
|
||||
window.setTimeout(function() {
|
||||
notEqual( $clone.css( style.name ), style.value[ 0 ], "Cloned css was changed" );
|
||||
|
||||
ok( jQuery.inArray( $source.css( style.name ) !== -1, style.value ),
|
||||
"Clearing clone.css() doesn't affect source.css(): " + style.name +
|
||||
"; result: " + $source.css( style.name ) +
|
||||
|
||||
@@ -81,7 +81,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":true,
|
||||
"ajax":true,
|
||||
"cors":true,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
} else if ( /opera.*version\/12\.1/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -114,7 +115,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":true,
|
||||
"ajax":true,
|
||||
"cors":true,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
} else if ( /msie 10\.0/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -147,7 +149,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":true,
|
||||
"ajax":true,
|
||||
"cors":true,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": false
|
||||
};
|
||||
} else if ( /msie 9\.0/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -180,7 +183,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":true,
|
||||
"ajax":true,
|
||||
"cors":false,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": false
|
||||
};
|
||||
} else if ( /msie 8\.0/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -213,7 +217,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":false,
|
||||
"ajax":true,
|
||||
"cors":false,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
} else if ( /msie 7\.0/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -246,7 +251,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"shrinkWrapBlocks": false,
|
||||
"submitBubbles": false,
|
||||
"tbody": false,
|
||||
"style": false
|
||||
"style": false,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
} else if ( /msie 6\.0/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -279,7 +285,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":false,
|
||||
"ajax":true,
|
||||
"cors":false,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
} else if ( /5\.1\.1 safari/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -312,7 +319,8 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":true,
|
||||
"ajax":true,
|
||||
"cors":true,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
} else if ( /firefox/i.test( userAgent ) ) {
|
||||
expected = {
|
||||
@@ -345,13 +353,14 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
|
||||
"reliableHiddenOffsets":true,
|
||||
"ajax":true,
|
||||
"cors":true,
|
||||
"doesNotIncludeMarginInBodyOffset":true
|
||||
"doesNotIncludeMarginInBodyOffset":true,
|
||||
"clearCloneStyle": true
|
||||
};
|
||||
}
|
||||
|
||||
if ( expected ) {
|
||||
test("Verify that the support tests resolve as expected per browser", function() {
|
||||
expect( 30 );
|
||||
expect( 31 );
|
||||
|
||||
for ( var i in expected ) {
|
||||
if ( jQuery.ajax || i !== "ajax" && i !== "cors" ) {
|
||||
|
||||
Reference in New Issue
Block a user