]> source.dussan.org Git - jquery.git/commitdiff
Make sure that opacity is being reset properly on a show animation. Additionally...
authorjeresig <jeresig@gmail.com>
Mon, 27 Sep 2010 15:51:01 +0000 (11:51 -0400)
committerjeresig <jeresig@gmail.com>
Mon, 27 Sep 2010 15:51:01 +0000 (11:51 -0400)
src/core.js
src/css.js
src/data.js
test/unit/effects.js

index cc921385d939141b02320050851ea0cf4b78dfa5..3389e83f79c5979dd48122cb16b6e328476893ff 100644 (file)
@@ -33,6 +33,9 @@ var jQuery = function( selector, context ) {
        // Check for non-word characters
        rnonword = /\W/,
 
+       // Check for digits
+       rdigit = /\d/,
+
        // Match a standalone tag
        rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
 
@@ -488,6 +491,10 @@ jQuery.extend({
                return obj && typeof obj === "object" && "setInterval" in obj;
        },
 
+       isNaN: function( obj ) {
+               return obj == null || !rdigit.test( obj ) || isNaN( obj );
+       },
+
        type: function( obj ) {
                return obj == null ?
                        String( obj ) :
index 77949aebc60f56fa4237c0f61cbc738d5023a0e9..07ff686d0742635e0294dfa057af007753694c69 100644 (file)
@@ -32,10 +32,15 @@ jQuery.extend({
        // behavior of getting and setting a style property
        cssHooks: {
                opacity: {
-                       get: function( elem ) {
-                               // We should always get a number back from opacity
-                               var ret = curCSS( elem, "opacity", "opacity" );
-                               return ret === "" ? "1" : ret;
+                       get: function( elem, computed ) {
+                               if ( computed ) {
+                                       // We should always get a number back from opacity
+                                       var ret = curCSS( elem, "opacity", "opacity" );
+                                       return ret === "" ? "1" : ret;
+
+                               } else {
+                                       return elem.style.opacity;
+                               }
                        }
                }
        },
@@ -176,7 +181,7 @@ if ( !jQuery.support.opacity ) {
                        // IE uses filters for opacity
                        return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ?
                                (parseFloat(RegExp.$1) / 100) + "" :
-                               "1";
+                               computed ? "1" : "";
                },
 
                set: function( elem, value ) {
@@ -187,11 +192,10 @@ if ( !jQuery.support.opacity ) {
                        style.zoom = 1;
 
                        // Set the alpha filter to set the opacity
-                       var opacity = isNaN(value) ?
+                       var opacity = jQuery.isNaN(value) ?
                                "" :
-                               "alpha(opacity=" + value * 100 + ")";
-
-                       var filter = style.filter || elem.currentStyle && elem.currentStyle.filter || "";
+                               "alpha(opacity=" + value * 100 + ")",
+                               filter = style.filter || "";
 
                        style.filter = ralpha.test(filter) ?
                                filter.replace(ralpha, opacity) :
index 448e243931bffaf60340cd7d628b046ae286b9a3..43ab5955c7596246fe06c4dbbc5df5c9e8fd0675 100644 (file)
@@ -1,8 +1,7 @@
 (function( jQuery ) {
 
 var windowData = {},
-       rbrace = /^(?:\{.*\}|\[.*\])$/,
-       rdigit = /\d/;
+       rbrace = /^(?:\{.*\}|\[.*\])$/;
 
 jQuery.extend({
        cache: {},
@@ -174,7 +173,7 @@ jQuery.fn.extend({
                                                        data = data === "true" ? true :
                                                                data === "false" ? false :
                                                                data === "null" ? null :
-                                                               rdigit.test( data ) && !isNaN( data ) ? parseFloat( data ) :
+                                                               !jQuery.isNaN( data ) ? parseFloat( data ) :
                                                                rbrace.test( data ) ? jQuery.parseJSON( data ) :
                                                                data;
                                                } catch( e ) {}
index ed6faa952808fe21724cb4305f3e5b3bf71580a0..b9d5c88410d02e25f0623234a12a539f0814e7cf 100644 (file)
@@ -389,16 +389,16 @@ jQuery.each( {
        "CSS Auto": function(elem,prop){
                jQuery(elem).addClass("auto" + prop)
                        .text("This is a long string of text.");
-               return prop == "opacity" ? 1 : "";
+               return "";
        },
        "JS Auto": function(elem,prop){
                jQuery(elem).css(prop,"")
                        .text("This is a long string of text.");
-               return prop == "opacity" ? 1 : "";
+               return "";
        },
        "CSS 100": function(elem,prop){
                jQuery(elem).addClass("large" + prop);
-               return prop == "opacity" ? 1 : "";
+               return "";
        },
        "JS 100": function(elem,prop){
                jQuery(elem).css(prop,prop == "opacity" ? 1 : "100px");
@@ -406,7 +406,7 @@ jQuery.each( {
        },
        "CSS 50": function(elem,prop){
                jQuery(elem).addClass("med" + prop);
-               return prop == "opacity" ? 0.5 : "";
+               return "";
        },
        "JS 50": function(elem,prop){
                jQuery(elem).css(prop,prop == "opacity" ? 0.50 : "50px");
@@ -414,7 +414,7 @@ jQuery.each( {
        },
        "CSS 0": function(elem,prop){
                jQuery(elem).addClass("no" + prop);
-               return prop == "opacity" ? 0 : "";
+               return "";
        },
        "JS 0": function(elem,prop){
                jQuery(elem).css(prop,prop == "opacity" ? 0 : "0px");
@@ -481,10 +481,6 @@ jQuery.each( {
                                        
                                var cur_o = jQuery.style(this, "opacity");
 
-                               if ( cur_o !== "" ) {
-                                       cur_o = jQuery.css(this, "opacity");
-                               }
-       
                                if ( t_o == "hide" || t_o == "show" )
                                        equals(cur_o, f_o, "Opacity must be reset to " + f_o + ": " + cur_o);