Bug Tracker

Changeset 5462

Show
Ignore:
Timestamp:
05/06/08 00:54:59 (8 months ago)
Author:
aflesler
Message:

jquery core: code reduction at $.each and $.curCSS.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jquery/src/core.js

    r5390 r5462  
    721721    // args is for internal usage only 
    722722    each: function( object, callback, args ) { 
     723        var name, i = 0, length = object.length; 
     724         
    723725        if ( args ) { 
    724             if ( object.length == undefined ) { 
    725                 for ( var name in object ) 
     726            if ( length == undefined ) { 
     727                for ( name in object ) 
    726728                    if ( callback.apply( object[ name ], args ) === false ) 
    727729                        break; 
    728730            } else 
    729                 for ( var i = 0, length = object.length; i < length; i++ ) 
    730                     if ( callback.apply( object[ i ], args ) === false ) 
     731                for ( ; i < length; ) 
     732                    if ( callback.apply( object[ i++ ], args ) === false ) 
    731733                        break; 
    732734 
    733735        // A special, fast, case for the most common use of each 
    734736        } else { 
    735             if ( object.length == undefined ) { 
    736                 for ( var name in object ) 
     737            if ( length == undefined ) { 
     738                for ( name in object ) 
    737739                    if ( callback.call( object[ name ], name, object[ name ] ) === false ) 
    738740                        break; 
    739741            } else 
    740                 for ( var i = 0, length = object.length, value = object[0];  
     742                for ( var value = object[0];  
    741743                    i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} 
    742744        } 
     
    823825 
    824826    curCSS: function( elem, name, force ) { 
    825         var ret; 
     827        var ret, style = elem.style; 
    826828 
    827829        // A helper method for determining if an element's values are broken 
     
    837839        // We need to handle opacity special in IE 
    838840        if ( name == "opacity" && jQuery.browser.msie ) { 
    839             ret = jQuery.attr( elem.style, "opacity" ); 
     841            ret = jQuery.attr( style, "opacity" ); 
    840842 
    841843            return ret == "" ? 
     
    845847        // Opera sometimes will give the wrong display answer, this fixes it, see #2037 
    846848        if ( jQuery.browser.opera && name == "display" ) { 
    847             var save = elem.style.outline; 
    848             elem.style.outline = "0 solid black"; 
    849             elem.style.outline = save; 
     849            var save = style.outline; 
     850            style.outline = "0 solid black"; 
     851            style.outline = save; 
    850852        } 
    851853         
     
    854856            name = styleFloat; 
    855857 
    856         if ( !force && elem.style && elem.style[ name ] ) 
    857             ret = elem.style[ name ]; 
     858        if ( !force && style && style[ name ] ) 
     859            ret = style[ name ]; 
    858860 
    859861        else if ( getComputedStyle ) { 
     
    917919            if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { 
    918920                // Remember the original values 
    919                 var style = elem.style.left, runtimeStyle = elem.runtimeStyle.left; 
     921                var left = style.left, rsLeft = elem.runtimeStyle.left; 
    920922 
    921923                // Put in the new values to get a computed value out 
    922924                elem.runtimeStyle.left = elem.currentStyle.left; 
    923                 elem.style.left = ret || 0; 
    924                 ret = elem.style.pixelLeft + "px"; 
     925                style.left = ret || 0; 
     926                ret = style.pixelLeft + "px"; 
    925927 
    926928                // Revert the changed values 
    927                 elem.style.left = style; 
    928                 elem.runtimeStyle.left = runtimeStyle; 
     929                style.left = left; 
     930                elem.runtimeStyle.left = rsLeft; 
    929931            } 
    930932        }