fixing both #8403 and #8401: jQuery \"bulldozes\" other IE filters when setting opacity

This commit is contained in:
louisremi 2011-03-01 00:54:15 +01:00
parent 71bd828d9f
commit 025f2c63e4

View file

@ -221,7 +221,8 @@ if ( !jQuery.support.opacity ) {
}, },
set: function( elem, value ) { set: function( elem, value ) {
var style = elem.style; var style = elem.style,
currentStyle = elem.currentStyle;
// IE has trouble with opacity if it does not have layout // IE has trouble with opacity if it does not have layout
// Force it by setting the zoom level // Force it by setting the zoom level
@ -231,11 +232,11 @@ if ( !jQuery.support.opacity ) {
var opacity = jQuery.isNaN(value) ? var opacity = jQuery.isNaN(value) ?
"" : "" :
"alpha(opacity=" + value * 100 + ")", "alpha(opacity=" + value * 100 + ")",
filter = style.filter || ""; filter = currentStyle && currentStyle.filter || style.filter || "";
style.filter = ralpha.test(filter) ? style.filter = ralpha.test(filter) ?
filter.replace(ralpha, opacity) : filter.replace(ralpha, opacity) :
style.filter + ' ' + opacity; filter + ' ' + opacity;
} }
}; };
} }