Ever wanted to fire an event when a user stops typing into an input or textarea? Here is a quick jQuery plugin to do just that:
(function($){
$.fn.extend({
typingEnd: function(callback, timeout){
callback = callback || null;
timeout = timeout || 500;
return this.each(function() {
var $t = $(this),
elapse_timeout = null;
if(callback){
$t.bind('typingEnd', callback);
if(!$t.data('hasTypingEndEvent')){
$t.data('hasTypingEndEvent',true);
$t.keyup(function(e){
if(elapse_timeout)
clearTimeout(elapse_timeout);
elapse_timeout = setTimeout(function(){
$t.trigger('typingEnd');
}, timeout);
}); // end keyup
}
}
else $t.trigger('typingEnd');
}); // end each
} // end typingEnd
}); // end extend
})(jQuery);
Once you include this snippet you can attach events like the following
// pass in the callback function
$myInput.typingEnd(callback);
// if the typingEnd functionality is already bound to the element you can use bind
$myInput.bind('typingEnd', anotherCallback);
It will check if the user has pressed any keys within the given timeout. If not the event is fired.

