X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=cab3b54c3a55e7d9c90e8a4c21400eccdefa45e7;hb=5b84c7c45c8c3c5e7c9a17239cd658b0c87ab892;hp=86c9982a0325a78956ab1a5d7985538cf40fbbd5;hpb=ffd457d4561eb1a6653aaef90f92a3b3010b9139;p=jquery.git diff --git a/src/core.js b/src/core.js index 86c9982..cab3b54 100644 --- a/src/core.js +++ b/src/core.js @@ -1,8 +1,10 @@ -// Will speed up references to window, and allows munging its name. -var window = this, - - // Will speed up references to undefined, and allows munging its name. - undefined, +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return arguments.length === 0 ? + rootjQuery : + new jQuery.fn.init( selector, context ); + }, // Map over jQuery in case of overwrite _jQuery = window.jQuery, @@ -10,19 +12,9 @@ var window = this, // Map over the $ in case of overwrite _$ = window.$, - // Define a local copy of jQuery - jQuery, - // A central reference to the root jQuery(document) rootjQuery, - jQuery = window.jQuery = window.$ = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return selector === undefined ? - rootjQuery : - new jQuery.fn.init( selector, context ); - }, - // A simple way to check for HTML strings or ID strings // (both of which we optimize for) quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, @@ -36,11 +28,8 @@ var window = this, // Save a reference to the core toString method toString = Object.prototype.toString; -// Define the main jQuery method -jQuery = window.jQuery = window.$ = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context ); -}; +// Expose jQuery to the global object +window.jQuery = window.$ = jQuery; jQuery.fn = jQuery.prototype = { init: function( selector, context ) { @@ -83,10 +72,13 @@ jQuery.fn = jQuery.prototype = { } // Otherwise, we inject the element directly into the jQuery object - ret = jQuery( elem || null ); - ret.context = document; - ret.selector = selector; - return ret; + this.length = elem ? 1 : 0; + if ( elem ) { + this[0] = elem; + } + this.context = document; + this.selector = selector; + return this; } // HANDLE: $(expr, $(...)) @@ -318,10 +310,12 @@ jQuery.extend({ // args is for internal usage only each: function( object, callback, args ) { - var name, i = 0, length = object.length; + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction(object); if ( args ) { - if ( length === undefined ) { + if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; @@ -337,7 +331,7 @@ jQuery.extend({ // A special, fast, case for the most common use of each } else { - if ( length === undefined ) { + if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break;