X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=93a051610d5ce62e5ed2394aae6280dd0d8427bc;hb=c43b078c6911027fd4124d542446ad0098662f6a;hp=0211808c5b79b054fd3662fac70f2bb66741cb8f;hpb=6fb9759a75bf2b9a2aa3a8fce9cd7afc011d8c4f;p=jquery.git diff --git a/src/core.js b/src/core.js index 0211808..93a0516 100644 --- a/src/core.js +++ b/src/core.js @@ -59,7 +59,7 @@ var jQuery = function( selector, context ) { // Has the ready events already been bound? readyBound = false, - + // The deferred used on DOM ready readyList, @@ -252,13 +252,13 @@ jQuery.fn = jQuery.prototype = { each: function( callback, args ) { return jQuery.each( this, callback, args ); }, - + ready: function() { // Attach the listeners jQuery.bindReady(); - + // Change ready & apply - return ( jQuery.fn.ready = readyList.then ).apply( this , arguments ); + return ( jQuery.fn.ready = readyList.complete ).apply( this , arguments ); }, eq: function( i ) { @@ -406,7 +406,7 @@ jQuery.extend({ // If there are functions bound, to execute readyList.fire( document , [ jQuery ] ); - + // Trigger any bound ready events if ( jQuery.fn.trigger ) { jQuery( document ).trigger( "ready" ).unbind( "ready" ); @@ -543,7 +543,7 @@ jQuery.extend({ jQuery.error( "Invalid JSON: " + data ); } }, - + // Cross-browser xml parsing // (xml & tmp used internally) parseXML: function( data , xml , tmp ) { @@ -556,13 +556,13 @@ jQuery.extend({ xml.async = "false"; xml.loadXML( data ); } - + tmp = xml.documentElement; - + if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { jQuery.error( "Invalid XML: " + data ); } - + return xml; }, @@ -800,10 +800,10 @@ jQuery.extend({ now: function() { return (new Date()).getTime(); }, - + // Create a simple deferred (one callbacks list) _Deferred: function() { - + var // callbacks list callbacks = [], // stored [ context , args ] @@ -814,48 +814,48 @@ jQuery.extend({ cancelled, // the deferred itself deferred = { - - // then( f1, f2, ...) - then: function () { - + + // complete( f1, f2, ...) + complete: 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++ ) { elem = args[ i ]; type = jQuery.type( elem ); if ( type === "array" ) { - deferred.then.apply( deferred , elem ); + deferred.complete.apply( deferred , elem ); } else if ( type === "function" ) { callbacks.push( elem ); } } - + if ( _fired ) { deferred.fire( _fired[ 0 ] , _fired[ 1 ] ); } } - + return this; }, - + // resolve with given context and args fire: function( context , args ) { if ( ! cancelled && ! fired && ! firing ) { - + firing = 1; - + try { while( callbacks[ 0 ] ) { callbacks.shift().apply( context , args ); @@ -868,18 +868,18 @@ jQuery.extend({ } return this; }, - + // resolve with this as context and given arguments resolve: function() { deferred.fire( jQuery.isFunction( this.promise ) ? this.promise() : this , arguments ); return this; }, - + // Has this deferred been resolved? isResolved: function() { return !!( firing || fired ); }, - + // Cancel cancel: function() { cancelled = 1; @@ -887,50 +887,54 @@ jQuery.extend({ return this; } }; - + return deferred; }, - + // Full fledged deferred (two callbacks list) // Typical success/error system Deferred: function( func ) { - + var deferred = jQuery._Deferred(), failDeferred = jQuery._Deferred(); - - // Add errorDeferred methods and redefine cancel + + // Add errorDeferred methods and redefine cancel jQuery.extend( deferred , { - fail: failDeferred.then, - fireReject: failDeferred.fire, - reject: failDeferred.resolve, - isRejected: failDeferred.isResolved, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - obj = obj || {}; - jQuery.each( "then fail isResolved isRejected".split( " " ) , function( _ , method ) { - obj[ method ] = deferred[ method ]; - }); - obj.promise = function() { - return obj; - }; + then: function( completeCallbacks , failCallbacks ) { + deferred.complete( completeCallbacks ).fail( failCallbacks ); + return this; + }, + fail: failDeferred.complete, + fireReject: failDeferred.fire, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + obj = obj || {}; + jQuery.each( "then complete fail isResolved isRejected".split( " " ) , function( _ , method ) { + obj[ method ] = deferred[ method ]; + }); + obj.promise = function() { return obj; - } + }; + return obj; + } } ); - + // Make sure only one callback list will be used - deferred.then( failDeferred.cancel ).fail( deferred.cancel ); - + deferred.then( failDeferred.cancel , deferred.cancel ); + // Unexpose cancel delete deferred.cancel; - + // Call given func if any if ( func ) { func.call( deferred , deferred ); } - + return deferred; }, @@ -1030,11 +1034,6 @@ function doScrollCheck() { jQuery.ready(); } -// Expose jQuery as an Asynchronous Module -if ( typeof define === "function" ) { - define( "jquery", [], function () { return jQuery; } ); -} - // Expose jQuery to the global object return (window.jQuery = window.$ = jQuery);