javascript - Only do an action if content has not changed in 500ms -


currently have

$('document').ready(function(){   $('input').keyup(function(){     $('#output').text($(this).text());   }); }); 

what want is,

when keypress registered wait 500ms, if key pressed again within 500ms, wait 500ms keypress.

once 500ms has gone by, run $('#output').text($(this).text());

how go managing timeout?

you can set , clear timer, this:

$(function(){   $('input').keyup(function(){     cleartimeout($.data(this, 'timer'));     var input = this;     $.data(this, 'timer', settimeout(function() {       $('#output').text($(input).text());     }, 500));   }); }); 

what on keyup sets 500ms delay before running $('#output').text($(input).text()), if key pressed before happens, cancels timer , starts another...so won't run until 500ms of idle. using $.data() store timer on specific element, generic solution work number of elements on page.


as aside, $('document').ready() should $(document).ready() or shorter $(function() { have above, "document" (in quotes) runs selector unnecessarily.


Comments

Popular posts from this blog

android - Spacing between the stars of a rating bar? -

html - Instapaper-like algorithm -

c# - How to execute a particular part of code asynchronously in a class -