Skip to content
Permalink
Browse files

Fix #12803. Add jQuery.fx.start as a hook point. Close gh-1024.

  • Loading branch information...
gnarf authored and dmethvin committed Nov 8, 2012
1 parent 84629a9 commit 516a7a8792200614d43caf1c9a004760fb5fec68
Showing with 35 additions and 2 deletions.
  1. +8 −2 src/effects.js
  2. +27 −0 test/unit/effects.js
@@ -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;
@@ -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 )

0 comments on commit 516a7a8

Please sign in to comment.
You can’t perform that action at this time.