Create a gist now

Instantly share code, notes, and snippets.

A text field monitoring plugin for jQuery
(function($) {
return $.fn.monitor = function(fn) {
var changed, currentVal, cycle, lastVal, timeout,
_this = this;
currentVal = this.val();
lastVal = currentVal;
timeout = null;
changed = function() {
return currentVal !== lastVal;
};
cycle = function() {
currentVal = _this.val();
if (changed()) fn(currentVal);
lastVal = currentVal;
return timeout = setTimeout(cycle, 1000);
};
this.keyup(function() {
clearTimeout(timeout);
return cycle();
});
return cycle();
};
})(jQuery);
(($) ->
$.fn.monitor = (fn) ->
currentVal = @val()
lastVal = currentVal
timeout = null
changed = () =>
currentVal != lastVal
cycle = () =>
currentVal = @val()
fn(currentVal) if (changed())
lastVal = currentVal
timeout = setTimeout cycle, 1000
@keyup () ->
clearTimeout(timeout)
cycle()
cycle()
)(jQuery)
@beku8
beku8 commented Jan 30, 2013

can you provide the sample code using this plugin?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment