git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix jQuery.queue leaks empty queues.
[jquery.git]
/
src
/
core.js
diff --git
a/src/core.js
b/src/core.js
index
59a89d2
..
b9e6d81
100644
(file)
--- 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,
// Has the ready events already been bound?
readyBound = false,
-
+
// The deferred used on DOM ready
readyList,
// 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 );
},
each: function( callback, args ) {
return jQuery.each( this, callback, args );
},
-
+
ready: function() {
// Attach the listeners
jQuery.bindReady();
ready: function() {
// Attach the listeners
jQuery.bindReady();
-
+
// Change ready & apply
// Change ready & apply
- return ( jQuery.fn.ready = readyList.complete ).apply( this , arguments );
+ return ( jQuery.fn.ready = readyList.done ).apply( this , arguments );
},
eq: function( i ) {
},
eq: function( i ) {
@@
-406,7
+406,7
@@
jQuery.extend({
// If there are functions bound, to execute
readyList.fire( document , [ jQuery ] );
// 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" );
// 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 );
}
},
jQuery.error( "Invalid JSON: " + data );
}
},
-
+
// Cross-browser xml parsing
// (xml & tmp used internally)
parseXML: function( data , xml , tmp ) {
// 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 );
}
xml.async = "false";
xml.loadXML( data );
}
-
+
tmp = xml.documentElement;
tmp = xml.documentElement;
-
+
if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
jQuery.error( "Invalid XML: " + data );
}
if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
jQuery.error( "Invalid XML: " + data );
}
-
+
return xml;
},
return xml;
},
@@
-800,10
+800,10
@@
jQuery.extend({
now: function() {
return (new Date()).getTime();
},
now: function() {
return (new Date()).getTime();
},
-
+
// Create a simple deferred (one callbacks list)
_Deferred: function() {
// Create a simple deferred (one callbacks list)
_Deferred: function() {
-
+
var // callbacks list
callbacks = [],
// stored [ context , args ]
var // callbacks list
callbacks = [],
// stored [ context , args ]
@@
-814,48
+814,48
@@
jQuery.extend({
cancelled,
// the deferred itself
deferred = {
cancelled,
// the deferred itself
deferred = {
-
- // complete( f1, f2, ...)
- complete: function () {
-
+
+ // done( f1, f2, ...)
+ done: function () {
+
if ( ! cancelled ) {
if ( ! cancelled ) {
-
+
var args = arguments,
i,
length,
elem,
type,
_fired;
var args = arguments,
i,
length,
elem,
type,
_fired;
-
+
if ( fired ) {
_fired = fired;
fired = 0;
}
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" ) {
for ( i = 0, length = args.length ; i < length ; i++ ) {
elem = args[ i ];
type = jQuery.type( elem );
if ( type === "array" ) {
- deferred.complete.apply( deferred , elem );
+ deferred.done.apply( deferred , elem );
} else if ( type === "function" ) {
callbacks.push( elem );
}
}
} else if ( type === "function" ) {
callbacks.push( elem );
}
}
-
+
if ( _fired ) {
deferred.fire( _fired[ 0 ] , _fired[ 1 ] );
}
}
if ( _fired ) {
deferred.fire( _fired[ 0 ] , _fired[ 1 ] );
}
}
-
+
return this;
},
return this;
},
-
+
// resolve with given context and args
fire: function( context , args ) {
if ( ! cancelled && ! fired && ! firing ) {
// resolve with given context and args
fire: function( context , args ) {
if ( ! cancelled && ! fired && ! firing ) {
-
+
firing = 1;
firing = 1;
-
+
try {
while( callbacks[ 0 ] ) {
callbacks.shift().apply( context , args );
try {
while( callbacks[ 0 ] ) {
callbacks.shift().apply( context , args );
@@
-868,18
+868,18
@@
jQuery.extend({
}
return this;
},
}
return this;
},
-
+
// resolve with this as context and given arguments
resolve: function() {
deferred.fire( jQuery.isFunction( this.promise ) ? this.promise() : this , arguments );
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 );
},
// Has this deferred been resolved?
isResolved: function() {
return !!( firing || fired );
},
-
+
// Cancel
cancel: function() {
cancelled = 1;
// Cancel
cancel: function() {
cancelled = 1;
@@
-887,25
+887,25
@@
jQuery.extend({
return this;
}
};
return this;
}
};
-
+
return deferred;
},
return deferred;
},
-
+
// Full fledged deferred (two callbacks list)
// Typical success/error system
Deferred: function( func ) {
// Full fledged deferred (two callbacks list)
// Typical success/error system
Deferred: function( func ) {
-
+
var deferred = jQuery._Deferred(),
failDeferred = jQuery._Deferred();
var deferred = jQuery._Deferred(),
failDeferred = jQuery._Deferred();
-
- // Add errorDeferred methods and redefine cancel
+
+ // Add errorDeferred methods and redefine cancel
jQuery.extend( deferred , {
jQuery.extend( deferred , {
- then: function( completeCallbacks , failCallbacks ) {
- deferred.complete( completeCallbacks ).fail( failCallbacks );
- return this;
- },
- fail: failDeferred.complete,
+ then: function( doneCallbacks , failCallbacks ) {
+ deferred.done( doneCallbacks ).fail( failCallbacks );
+ return this;
+ },
+ fail: failDeferred.done,
fireReject: failDeferred.fire,
reject: failDeferred.resolve,
isRejected: failDeferred.isResolved,
fireReject: failDeferred.fire,
reject: failDeferred.resolve,
isRejected: failDeferred.isResolved,
@@
-913,7
+913,7
@@
jQuery.extend({
// If obj is provided, the promise aspect is added to the object
promise: function( obj ) {
obj = obj || {};
// 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 ) {
+ jQuery.each( "then done fail isResolved isRejected".split( " " ) , function( _ , method ) {
obj[ method ] = deferred[ method ];
});
obj.promise = function() {
obj[ method ] = deferred[ method ];
});
obj.promise = function() {
@@
-923,18
+923,18
@@
jQuery.extend({
}
} );
}
} );
-
+
// Make sure only one callback list will be used
deferred.then( failDeferred.cancel , deferred.cancel );
// Make sure only one callback list will be used
deferred.then( failDeferred.cancel , deferred.cancel );
-
+
// Unexpose cancel
delete deferred.cancel;
// Unexpose cancel
delete deferred.cancel;
-
+
// Call given func if any
if ( func ) {
func.call( deferred , deferred );
}
// Call given func if any
if ( func ) {
func.call( deferred , deferred );
}
-
+
return deferred;
},
return deferred;
},