I needed to create many HTML countdown timers for a little pet project of mine. So, I wrote a jQuery selector function to create countdown timers on demand. These timers are really simple, they countdown for a number of seconds to zero.
Add this to your scripts:
(function($) { $.fn.createCountdownTimer = function(selector,time,tick,cb) { var seconds = time; var el = this; tick = tick || 1; var timer = function() { seconds -= tick; el.find(selector).text(String(seconds)); if (seconds > 0) setTimeout(timer,tick * 1000); else cb && cb(); }; setTimeout(timer,tick * 1000); return this; }; })(jQuery);
Parameters tick and cb are optional. tick defaults to 1 as you usually tick down 1 second at a time.
Suppose you have a HTML countdown timer such as:
<div id="my_timer">Starting in <span class="timer">10</span> seconds...</div>
then, all you need to do to start a countdown from 10 to 0 is:
$("#my_timer").createCountdownTimer(".timer",10);
You can also supply a callback as a fourth parameter that will be called when the timer is done counting to zero. For example:
$("#my_timer").createCountdownTimer(".timer",10,1,function() { alert('Done!'); });