freenetis-github/media/js/jquery.timer.js @ 9d87019d
8baed187 | Michal Kliment | /*
|
|
*
|
|||
* jQuery Timer plugin v0.1
|
|||
* Matt Schmidt [http://www.mattptr.net]
|
|||
*
|
|||
* Licensed under the BSD License:
|
|||
* http://mattptr.net/license/license.txt
|
|||
*
|
|||
*/
|
|||
jQuery.timer = function (interval, callback)
|
|||
{
|
|||
/**
|
|||
*
|
|||
* timer() provides a cleaner way to handle intervals
|
|||
*
|
|||
* @usage
|
|||
* $.timer(interval, callback);
|
|||
*
|
|||
*
|
|||
* @example
|
|||
* $.timer(1000, function (timer) {
|
|||
* alert("hello");
|
|||
* timer.stop();
|
|||
* });
|
|||
* @desc Show an alert box after 1 second and stop
|
|||
*
|
|||
* @example
|
|||
* var second = false;
|
|||
* $.timer(1000, function (timer) {
|
|||
* if (!second) {
|
|||
* alert('First time!');
|
|||
* second = true;
|
|||
* timer.reset(3000);
|
|||
* }
|
|||
* else {
|
|||
* alert('Second time');
|
|||
* timer.stop();
|
|||
* }
|
|||
* });
|
|||
* @desc Show an alert box after 1 second and show another after 3 seconds
|
|||
*
|
|||
*
|
|||
*/
|
|||
var interval = interval || 100;
|
|||
if (!callback)
|
|||
return false;
|
|||
_timer = function (interval, callback) {
|
|||
this.stop = function () {
|
|||
clearInterval(self.id);
|
|||
};
|
|||
this.internalCallback = function () {
|
|||
callback(self);
|
|||
};
|
|||
this.reset = function (val) {
|
|||
if (self.id)
|
|||
clearInterval(self.id);
|
|||
var val = val || 100;
|
|||
this.id = setInterval(this.internalCallback, val);
|
|||
};
|
|||
this.interval = interval;
|
|||
this.id = setInterval(this.internalCallback, this.interval);
|
|||
var self = this;
|
|||
};
|
|||
return new _timer(interval, callback);
|
|||
};
|