Fix #1827 bug where extra setInterval()s can be called during animation.
This commit is contained in:
parent
084079d2fd
commit
b9371a6ca4
1 changed files with 7 additions and 4 deletions
11
src/fx.js
11
src/fx.js
|
@ -222,6 +222,7 @@ jQuery.extend({
|
|||
},
|
||||
|
||||
timers: [],
|
||||
timerId: null,
|
||||
|
||||
fx: function( elem, options, prop ){
|
||||
this.options = options;
|
||||
|
@ -276,16 +277,18 @@ jQuery.fx.prototype = {
|
|||
|
||||
jQuery.timers.push(t);
|
||||
|
||||
if ( jQuery.timers.length == 1 ) {
|
||||
var timer = setInterval(function(){
|
||||
if ( jQuery.timerId == null ) {
|
||||
jQuery.timerId = setInterval(function(){
|
||||
var timers = jQuery.timers;
|
||||
|
||||
for ( var i = 0; i < timers.length; i++ )
|
||||
if ( !timers[i]() )
|
||||
timers.splice(i--, 1);
|
||||
|
||||
if ( !timers.length )
|
||||
clearInterval( timer );
|
||||
if ( !timers.length ) {
|
||||
clearInterval( jQuery.timerId );
|
||||
jQuery.timerId = null;
|
||||
}
|
||||
}, 13);
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue