Skip to content
Permalink
Browse files

opacity is now retrieved from stylesheet in IE. fixes #3981

  • Loading branch information
brandonaaron committed May 14, 2009
1 parent b763cc6 commit ec3ebd3e8a7dfda15d227ea3dd21361e534beac3
Showing with 17 additions and 4 deletions.
  1. +9 −3 src/css.js
  2. +3 −0 test/index.html
  3. +5 −1 test/unit/css.js
@@ -120,12 +120,18 @@ jQuery.extend({
},

curCSS: function( elem, name, force ) {
var ret, style = elem.style;
var ret, style = elem.style, filter;

// IE uses filters for opacity
if ( !jQuery.support.opacity && name == "opacity" ) {
ret = style.filter && style.filter.indexOf("opacity=") >= 0 ?
(parseFloat( style.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
filter = (filter = style.filter) && filter.indexOf("opacity=") >= 0 ?
filter :
(filter = elem.currentStyle[ 'filter' ]) && filter.indexOf("opacity=") >= 0 ?
filter :
null;

ret = filter && filter.indexOf("opacity=") >= 0 ?
(parseFloat( filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
"";

return ret === "" ?
@@ -4,6 +4,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery Test Suite</title>
<link rel="Stylesheet" media="screen" href="qunit/testsuite.css" />
<style type="text/css" media="screen">
ol#empty { opacity: 0; filter:Alpha(opacity=0); } /* for testing opacity set in styles in IE */
</style>
<!-- Includes -->
<script type="text/javascript">
var jQuery = this.jQuery || "jQuery", // For testing .noConflict()
@@ -1,7 +1,7 @@
module("css");

test("css(String|Hash)", function() {
expect(21);
expect(23);

equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');

@@ -34,6 +34,10 @@ test("css(String|Hash)", function() {
});
jQuery('#foo').css({opacity: ''});
equals( jQuery('#foo').css('opacity'), '1', "Assert opacity is 1 when set to an empty String" );

equals( jQuery('#empty').css('opacity'), '0', "Assert opacity is accessible via filter property set in stylesheet in IE" );
jQuery('#empty').css({ opacity: '1' });
equals( jQuery('#empty').css('opacity'), '1', "Assert opacity is taken from style attribute when set vs stylesheet in IE with filters" );
});

test("css(String, Object)", function() {

0 comments on commit ec3ebd3

Please sign in to comment.
You can’t perform that action at this time.