Skip to content

Instantly share code, notes, and snippets.

@studiomohawk
Created October 25, 2012 06:28
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save studiomohawk/3950837 to your computer and use it in GitHub Desktop.
Save studiomohawk/3950837 to your computer and use it in GitHub Desktop.
throttle / debounce
/*
* jQuery throttle / debounce - v1.1 - 3/7/2010
* http://benalman.com/projects/jquery-throttle-debounce-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function(b, c) {
var $ = b.jQuery || b.Cowboy || (b.Cowboy = {}),
a;
$.throttle = a = function(e, f, j, i) {
var h, d = 0;
if (typeof f !== "boolean") {
i = j;
j = f;
f = c;
}
function g() {
var o = this,
m = +new Date() - d,
n = arguments;
function l() {
d = +new Date();
j.apply(o, n);
}
function k() {
h = c;
}
if (i && !h) {
l();
}
h && clearTimeout(h);
if (i === c && m > e) {
l();
} else {
if (f !== true) {
h = setTimeout(i ? k : l, i === c ? e - m : e);
}
}
}
if ($.guid) {
g.guid = j.guid = j.guid || $.guid++;
}
return g;
};
$.debounce = function(d, e, f) {
return f === c ? a(d, e, false) : a(d, f, e !== false);
};
})(this);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment