mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Fix #12803. Add jQuery.fx.start as a hook point. Close gh-1024.
This commit is contained in:
parent
84629a9b87
commit
516a7a8792
10
src/effects.js
vendored
10
src/effects.js
vendored
@ -640,13 +640,19 @@ jQuery.fx.tick = function() {
|
||||
};
|
||||
|
||||
jQuery.fx.timer = function( timer ) {
|
||||
if ( timer() && jQuery.timers.push( timer ) && !timerId ) {
|
||||
timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
|
||||
if ( timer() && jQuery.timers.push( timer ) ) {
|
||||
jQuery.fx.start();
|
||||
}
|
||||
};
|
||||
|
||||
jQuery.fx.interval = 13;
|
||||
|
||||
jQuery.fx.start = function() {
|
||||
if ( !timerId ) {
|
||||
timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
|
||||
}
|
||||
};
|
||||
|
||||
jQuery.fx.stop = function() {
|
||||
clearInterval( timerId );
|
||||
timerId = null;
|
||||
|
27
test/unit/effects.js
vendored
27
test/unit/effects.js
vendored
@ -1877,4 +1877,31 @@ jQuery.map([ "toggle", "slideToggle", "fadeToggle" ], function ( method ) {
|
||||
});
|
||||
});
|
||||
|
||||
test( "jQuery.fx.start & jQuery.fx.stop hook points", function() {
|
||||
var oldStart = jQuery.fx.start,
|
||||
oldStop = jQuery.fx.stop,
|
||||
foo = jQuery({ foo: 0 });
|
||||
|
||||
expect( 3 );
|
||||
|
||||
jQuery.fx.start = function() {
|
||||
ok( true, "start called" );
|
||||
};
|
||||
jQuery.fx.stop = function() {
|
||||
ok( true, "stop called" );
|
||||
};
|
||||
|
||||
// calls start
|
||||
foo.animate({ foo: 1 }, { queue: false });
|
||||
// calls start
|
||||
foo.animate({ foo: 2 }, { queue: false });
|
||||
foo.stop();
|
||||
// calls stop
|
||||
jQuery.fx.tick();
|
||||
|
||||
// cleanup
|
||||
jQuery.fx.start = oldStart;
|
||||
jQuery.fx.stop = oldStop;
|
||||
});
|
||||
|
||||
} // if ( jQuery.fx )
|
||||
|
Loading…
Reference in New Issue
Block a user