Syntactic sugar for JavaScript's setTimeout() and setInterval()
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc Bumping version number to 1.2 with new doc and minified JS versions Nov 23, 2011
lib
test
tools
.gitignore
BSD_LICENSE.txt 3-clause BSD License Apr 19, 2011
README.md

README.md

jQuery Chrono plugin (version 1.2)

jQuery Chrono provides syntactic sugar around JavaScript's native setTimeout and setInterval functions.

To execute some code in 5 minutes, instead of writing:

    setTimeout(function() { ... }, 300000); // how many zeros is that?

or the slightly more readable:

    setTimeout(function() { ... }, 5 * 60 * 1000); // 5... (multiplies in head) min

now you can just write:

    $.after(5, "minutes", function() { ... }); // :)

setTimeout becomes $.after and setInterval becomes $.every.

If you don't have jQuery, you can use the aliases jQueryChrono.every and jQueryChrono.after.

Usage

These are all valid calls:

    $.after(100, function() { ... });           // 100 milliseconds
    $.after("9.7", function() { ... });         // 9.7 milliseconds
    $.after("50sec", function() { ... });       // 50 seconds
    $.after("1 minute", function() { ... });       // 1 minute
    $.after(7, "mins", function() { ... });     // 7 minutes
    $.after("33", "hours", function() { ... }); // 33 hours
    $.after("minute", function() { ... });      // 1 minute
    $.after("1 hour, 2 minutes, 15 seconds", function() { ... }); // 1:02:15 hours
    $.after("1min, 15 s", function() { ... }); // 1:15 minutes

$.every, for creating intervals, has the same exact syntax as $.after.

Valid time units include:

  • millisecond (default)

  • second

  • minute

  • hour

  • day

along with all their common abbreviations and pluralizations.

jQuery Version

This project works with jQuery 1.4+ (see test/test.html) but as of version 1.2, also works without jQuery.

Contributing

  • Add relevant QUnit tests and make sure all existing tests pass (in test/tests.js)

  • Update the JsDoc (doc/) with:

    java -jar tools/jsdoc-toolkit/jsrun.jar tools/jsdoc-toolkit/app/run.js -a -t=tools/jsdoc-toolkit/templates/jsdoc/ -d=doc/ lib/jquery.chrono.js

  • Update the minified file (lib/jquery.chrono.min.js) with:

    java -jar tools/yuicompressor-2.4.6/build/yuicompressor-2.4.6.jar -o lib/jquery.chrono.min.js lib/jquery.chrono.js

Meta

Licensed under the 3-clause BSD license (BSD_LICENSE.txt)

Copyright (c) 2011, Arthur Klepchukov (at gmail)