/* * * 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); };