Fix #1827 bug where extra setInterval()s can be called during animation.

This commit is contained in:
David Serduke 2007-11-16 21:50:27 +00:00
parent 084079d2fd
commit b9371a6ca4

View file

@ -222,6 +222,7 @@ jQuery.extend({
}, },
timers: [], timers: [],
timerId: null,
fx: function( elem, options, prop ){ fx: function( elem, options, prop ){
this.options = options; this.options = options;
@ -276,16 +277,18 @@ jQuery.fx.prototype = {
jQuery.timers.push(t); jQuery.timers.push(t);
if ( jQuery.timers.length == 1 ) { if ( jQuery.timerId == null ) {
var timer = setInterval(function(){ jQuery.timerId = setInterval(function(){
var timers = jQuery.timers; var timers = jQuery.timers;
for ( var i = 0; i < timers.length; i++ ) for ( var i = 0; i < timers.length; i++ )
if ( !timers[i]() ) if ( !timers[i]() )
timers.splice(i--, 1); timers.splice(i--, 1);
if ( !timers.length ) if ( !timers.length ) {
clearInterval( timer ); clearInterval( jQuery.timerId );
jQuery.timerId = null;
}
}, 13); }, 13);
} }
}, },