mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Animation callbacks keep their place in the queue stack. Fixes #9220.
This commit is contained in:
parent
0f81cf8991
commit
3486365062
8
src/effects.js
vendored
8
src/effects.js
vendored
@ -330,15 +330,15 @@ jQuery.extend({
|
|||||||
// Queueing
|
// Queueing
|
||||||
opt.old = opt.complete;
|
opt.old = opt.complete;
|
||||||
opt.complete = function( noUnmark ) {
|
opt.complete = function( noUnmark ) {
|
||||||
|
if ( jQuery.isFunction( opt.old ) ) {
|
||||||
|
opt.old.call( this );
|
||||||
|
}
|
||||||
|
|
||||||
if ( opt.queue !== false ) {
|
if ( opt.queue !== false ) {
|
||||||
jQuery.dequeue( this );
|
jQuery.dequeue( this );
|
||||||
} else if ( noUnmark !== false ) {
|
} else if ( noUnmark !== false ) {
|
||||||
jQuery._unmark( this );
|
jQuery._unmark( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( jQuery.isFunction( opt.old ) ) {
|
|
||||||
opt.old.call( this );
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return opt;
|
return opt;
|
||||||
|
@ -107,7 +107,31 @@ test("queue() passes in the next item in the queue as a parameter to fx queues",
|
|||||||
equals(counter, 2, "Deferreds resolved");
|
equals(counter, 2, "Deferreds resolved");
|
||||||
start();
|
start();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test("callbacks keep their place in the queue", function() {
|
||||||
|
expect(5);
|
||||||
|
stop();
|
||||||
|
var div = jQuery("<div>"),
|
||||||
|
counter = 0;
|
||||||
|
|
||||||
|
div.queue(function( next ) {
|
||||||
|
equal( ++counter, 1, "Queue/callback order: first called" );
|
||||||
|
setTimeout( next, 200 );
|
||||||
|
}).show(100, function() {
|
||||||
|
equal( ++counter, 2, "Queue/callback order: second called" );
|
||||||
|
jQuery(this).hide(100, function() {
|
||||||
|
equal( ++counter, 4, "Queue/callback order: fourth called" );
|
||||||
|
});
|
||||||
|
}).queue(function( next ) {
|
||||||
|
equal( ++counter, 3, "Queue/callback order: third called" );
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
|
div.promise("fx").done(function() {
|
||||||
|
equals(counter, 4, "Deferreds resolved");
|
||||||
|
start();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test("delay()", function() {
|
test("delay()", function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user