X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcss.js;h=2395bdf59e3c491f49f5719eb25e918adb47ca47;hb=48e9a3999596c2ee1f4470a78637de8f27e3b219;hp=12f9d514e74b3f6c8f0dd59ff6d5bbb8bc69da35;hpb=ec3ebd3e8a7dfda15d227ea3dd21361e534beac3;p=jquery.git diff --git a/src/css.js b/src/css.js index 12f9d51..2395bdf 100644 --- a/src/css.js +++ b/src/css.js @@ -21,6 +21,13 @@ jQuery.fn.css = function( name, value ) { options[ name ] = value; } } + + var isFunction = {}; + + // For each value, determine whether it's a Function so we don't + // need to determine it again for each element + for ( var prop in options ) + isFunction[prop] = jQuery.isFunction( options[prop] ); // For each element... for ( var i = 0, l = this.length; i < l; i++ ) { @@ -30,9 +37,7 @@ jQuery.fn.css = function( name, value ) { for ( var prop in options ) { value = options[prop]; - if ( isFunction ) { - value = value.call( elem, i ); - } + if ( isFunction[prop] ) value = value.call( elem, i ); if ( typeof value === "number" && !exclude.test(prop) ) { value = value + "px"; @@ -70,7 +75,7 @@ jQuery.extend({ } return style.filter && style.filter.indexOf("opacity=") >= 0 ? - (parseFloat( style.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '': + (parseFloat( /opacity=([^)]*)/.exec(style.filter)[1] ) / 100) + '': ""; } @@ -123,15 +128,9 @@ jQuery.extend({ var ret, style = elem.style, filter; // IE uses filters for opacity - if ( !jQuery.support.opacity && name == "opacity" ) { - 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) + '': + if ( !jQuery.support.opacity && name === "opacity" && elem.currentStyle ) { + ret = /opacity=([^)]*)/.test(elem.currentStyle.filter || "") ? + (parseFloat(RegExp.$1) / 100) + "" : ""; return ret === "" ? @@ -208,4 +207,4 @@ jQuery.extend({ for ( var name in options ) elem.style[ name ] = old[ name ]; } -}); \ No newline at end of file +});