X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore.js;h=b90427b4da6f0fade5406a994a90cfa57d04093d;hb=0cd307ec1077f5b09972400180f54dc278ad624a;hp=b5a1c7072030a85dda77baf3472d9f63f2d7badb;hpb=05930c5a0d667c024c9acd0d087be846990fdcea;p=jquery.git diff --git a/src/core.js b/src/core.js index b5a1c70..b90427b 100644 --- a/src/core.js +++ b/src/core.js @@ -599,8 +599,7 @@ jQuery.extend({ return jQuery; }, - // This may seem like some crazy code, but trust me when I say that this - // is the only cross-browser way to do this. --John + // See test/unit/core.js for details concerning this function. isFunction: function( fn ) { return !!fn && typeof fn != "string" && !fn.nodeName && fn.constructor != Array && /function/i.test( fn + "" ); @@ -708,20 +707,22 @@ jQuery.extend({ // args is for internal usage only each: function( object, callback, args ) { if ( args ) { - if ( object.length == undefined ) + if ( object.length == undefined ) { for ( var name in object ) - callback.apply( object[ name ], args ); - else + if ( callback.apply( object[ name ], args ) === false ) + break; + } else for ( var i = 0, length = object.length; i < length; i++ ) if ( callback.apply( object[ i ], args ) === false ) break; // A special, fast, case for the most common use of each } else { - if ( object.length == undefined ) + if ( object.length == undefined ) { for ( var name in object ) - callback.call( object[ name ], name, object[ name ] ); - else + if ( callback.call( object[ name ], name, object[ name ] ) === false ) + break; + } else for ( var i = 0, length = object.length, value = object[0]; i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} } @@ -837,7 +838,7 @@ jQuery.extend({ if ( name.match( /float/i ) ) name = styleFloat; - if ( !force && elem.style[ name ] ) + if ( !force && elem.style && elem.style[ name ] ) ret = elem.style[ name ]; else if ( document.defaultView && document.defaultView.getComputedStyle ) {