X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=blobdiff_plain;f=src%2Fcore.js;h=520db45ed6cc179ba99b40d57725e3abe17ddcd9;hp=f116ef4d10b3e027befc18324eea9fb07a83d858;hb=9d306bd73bb47562cd52f0fc4cc158c534cfdfdf;hpb=265cf0efa7ab3296b3fc4917b863d7b09e3d8bb4 diff --git a/src/core.js b/src/core.js index f116ef4..520db45 100644 --- a/src/core.js +++ b/src/core.js @@ -130,7 +130,7 @@ jQuery.fn = jQuery.prototype = { } else { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = (ret.cacheable ? jQuery(ret.fragment).clone()[0] : ret.fragment).childNodes; + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; } return jQuery.merge( this, selector ); @@ -158,13 +158,6 @@ jQuery.fn = jQuery.prototype = { return this; } - // HANDLE: $("TAG") - } else if ( !context && !rnonword.test( selector ) ) { - this.selector = selector; - this.context = document; - selector = document.getElementsByTagName( selector ); - return jQuery.merge( this, selector ); - // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { return (context || rootjQuery).find( selector ); @@ -254,12 +247,14 @@ jQuery.fn = jQuery.prototype = { return jQuery.each( this, callback, args ); }, - ready: function() { + ready: function( fn ) { // Attach the listeners jQuery.bindReady(); - // Change ready & apply - return ( jQuery.fn.ready = readyList.done ).apply( this , arguments ); + // Add the callback + readyList.done( fn ); + + return this; }, eq: function( i ) { @@ -406,7 +401,7 @@ jQuery.extend({ } // If there are functions bound, to execute - readyList.fire( document , [ jQuery ] ); + readyList.resolveWith( document, [ jQuery ] ); // Trigger any bound ready events if ( jQuery.fn.trigger ) { @@ -804,7 +799,6 @@ jQuery.extend({ // Create a simple deferred (one callbacks list) _Deferred: function() { - var // callbacks list callbacks = [], // stored [ context , args ] @@ -817,53 +811,45 @@ jQuery.extend({ deferred = { // done( f1, f2, ...) - done: function () { - - if ( ! cancelled ) { - + done: function() { + if ( !cancelled ) { var args = arguments, i, length, elem, type, _fired; - if ( fired ) { _fired = fired; fired = 0; } - - for ( i = 0, length = args.length ; i < length ; i++ ) { + for ( i = 0, length = args.length; i < length; i++ ) { elem = args[ i ]; type = jQuery.type( elem ); if ( type === "array" ) { - deferred.done.apply( deferred , elem ); + deferred.done.apply( deferred, elem ); } else if ( type === "function" ) { callbacks.push( elem ); } } - if ( _fired ) { - deferred.fire( _fired[ 0 ] , _fired[ 1 ] ); + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); } } - return this; }, // resolve with given context and args - fire: function( context , args ) { - if ( ! cancelled && ! fired && ! firing ) { - + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { firing = 1; - try { while( callbacks[ 0 ] ) { - callbacks.shift().apply( context , args ); + callbacks.shift().apply( context, args ); } } finally { - fired = [ context , args ]; + fired = [ context, args ]; firing = 0; } } @@ -872,7 +858,7 @@ jQuery.extend({ // resolve with this as context and given arguments resolve: function() { - deferred.fire( jQuery.isFunction( this.promise ) ? this.promise() : this , arguments ); + deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments ); return this; }, @@ -893,28 +879,23 @@ jQuery.extend({ }, // Full fledged deferred (two callbacks list) - // Typical success/error system Deferred: function( func ) { - var deferred = jQuery._Deferred(), failDeferred = jQuery._Deferred(), promise; - // Add errorDeferred methods, then and promise - jQuery.extend( deferred , { - - then: function( doneCallbacks , failCallbacks ) { + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { deferred.done( doneCallbacks ).fail( failCallbacks ); return this; }, fail: failDeferred.done, - fireReject: failDeferred.fire, + rejectWith: failDeferred.resolveWith, reject: failDeferred.resolve, isRejected: failDeferred.isResolved, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object - // (i is used internally) - promise: function( obj , i ) { + promise: function( obj , i /* internal */ ) { if ( obj == null ) { if ( promise ) { return promise; @@ -927,20 +908,15 @@ jQuery.extend({ } return obj; } - } ); - // Make sure only one callback list will be used - deferred.then( failDeferred.cancel , deferred.cancel ); - + deferred.then( failDeferred.cancel, deferred.cancel ); // Unexpose cancel delete deferred.cancel; - // Call given func if any if ( func ) { - func.call( deferred , deferred ); + func.call( deferred, deferred ); } - return deferred; }, @@ -957,17 +933,14 @@ jQuery.extend({ if ( length > 1 ) { resolveArray = new Array( length ); jQuery.each( args, function( index, element, args ) { - jQuery.when( element ).done( function( value ) { + jQuery.when( element ).then( function( value ) { args = arguments; - resolveArray[ index ] = args.length > 1 ? slice.call( args , 0 ) : value; + resolveArray[ index ] = args.length > 1 ? slice.call( args, 0 ) : value; if( ! --length ) { - deferred.fire( promise, resolveArray ); + deferred.resolveWith( promise, resolveArray ); } - }).fail( function() { - deferred.fireReject( promise, arguments ); - }); - return !deferred.isRejected(); - }); + }, deferred.reject ); + } ); } else if ( deferred !== object ) { deferred.resolve( object ); }