You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
633 B
18 lines
633 B
// Returns a function, that, as long as it continues to be invoked, will not |
|
// be triggered. The function will be called after it stops being called for |
|
// N milliseconds. If `immediate` is passed, trigger the function on the |
|
// leading edge, instead of the trailing. |
|
function debounce(func, wait, immediate) { |
|
var timeout; |
|
return function() { |
|
var context = this, args = arguments; |
|
var later = function() { |
|
timeout = null; |
|
if (!immediate) func.apply(context, args); |
|
}; |
|
var callNow = immediate && !timeout; |
|
clearTimeout(timeout); |
|
timeout = setTimeout(later, wait); |
|
if (callNow) func.apply(context, args); |
|
}; |
|
}
|
|
|