Timeout Interval Idle
Creating Timeouts and Intervals
Javascript allows you to create Timeouts and Intervals using this syntax:
setTimeout("alert('I waited 5 seconds!');",5000);
setInterval("alert('I happen every 8 seconds');",8000);
These functions are very useful, but unfortunately they only accept code as a string. This module allows you to use jQuery to create timeouts and intervals that also accept functions, like this:
$.timeout(function() { alert('I waited 5 seconds'); }, 5000);
$.interval(function() { alert('I happen every 8 seconds'); }, 8000);
You can also create Timeouts and Intervals from predefined functions:
function now() { alert('now!'); }
$.timeout(now, 5000);
$.interval(now, 8000);
Clearing Timeouts and Intervals
Javascript allows you to create and clear Timeouts and the Intervals using the following sytax:
var to = setTimeout("alert('I waited 5 seconds!');",5000);
var it = setInterval("alert('I happen every 8 seconds');",8000);
clearTimeout(to);
clearInterval(it);
Using this plugin, the same can be done like this:
var to = $.timeout(function() { alert('I waited 5 seconds'); }, 5000);
var it = $.interval(function() { alert('I happen every 8 seconds'); }, 8000);
$.clear(to);
$.clear(it);
Creating Idle Timeouts
In addition to the above functionality, this plugin provides a new type of timed function, the Idle Timeout. Every time you create a new Idle Timeout, any previous Idle Timeout is cleared. This means that you can make an event happen X seconds after the *last* time this functions is called. For example:
<input type="text" id="body" onkeypress="$.idle(function() { alert($('#body').val()); }, 3000);" />
The above code will set an Idle Timeout (and clear the last one) every time the user types into the input box. 3 seconds after the last key is pressed, the idle function will run and the contents of the input box will be alerted.