diff options
author | yiminghe <yiminghe@gmail.com> | 2012-10-22 11:40:37 +0800 |
---|---|---|
committer | Dave Methvin <dave.methvin@gmail.com> | 2012-10-30 10:20:54 -0400 |
commit | c78a3ba6577b6735137abcd5c01a35ca28c33660 (patch) | |
tree | f1703d07d1f3af93152696dc978522ea4f252fd3 /src/css.js | |
parent | bea5ecbba72f22e8924186d9b81839122ec86aef (diff) | |
download | jquery-c78a3ba6577b6735137abcd5c01a35ca28c33660.tar.gz jquery-c78a3ba6577b6735137abcd5c01a35ca28c33660.zip |
Fix #12685. Handle inconsistent opacity for ie < 9. Close gh-1005.
Diffstat (limited to 'src/css.js')
-rw-r--r-- | src/css.js | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/css.js b/src/css.js index 6dd13efdf..1723223e5 100644 --- a/src/css.js +++ b/src/css.js @@ -1,6 +1,6 @@ var curCSS, iframe, iframeDoc, ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity=([^)]*)/, + ropacity = /opacity\s*=\s*([^)]*)/, rposition = /^(top|right|bottom|left)$/, // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display @@ -535,7 +535,9 @@ if ( !jQuery.support.opacity ) { style.zoom = 1; // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 - if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + // if value === "", then remove inline opacity #12685 + if ( ( value >= 1 || value === "" ) && + jQuery.trim( filter.replace( ralpha, "" ) ) === "" && style.removeAttribute ) { // Setting style.filter to null, "" & " " still leave "filter:" in the cssText @@ -543,8 +545,8 @@ if ( !jQuery.support.opacity ) { // style.removeAttribute is IE Only, but so apparently is this code path... style.removeAttribute( "filter" ); - // if there there is no filter style applied in a css rule, we are done - if ( currentStyle && !currentStyle.filter ) { + // if there is no filter style applied in a css rule or unset inline opacity, we are done + if ( value === "" || currentStyle && !currentStyle.filter ) { return; } } |