在最后一次按键5秒后调用javascript函数

我有一个带有的表单,我希望在最后一次按键5秒后调用一个javascript函数,每次按下一个新键时,此计时器应该重置并且只在5之后调用该函数秒。

我怎样才能做到这一点?

我正在使用jQuery。

谢谢!

这样的事情应该让你开始:

 var timeout; $('input[type=text]').keypress(function() { if(timeout) { clearTimeout(timeout); timeout = null; } timeout = setTimeout(myFunction, 5000) }) 

这很好,但请记住,您需要在文档加载后以及加载函数后启用此代码以清除超时。

这是完整的代码:

 var timeout; $(document).ready(function(){ $('input[type=text]').keypress(function() { if(timeout) { clearTimeout(timeout); timeout = null; } timeout = setTimeout(myFunction, 5000); }); }); var myFunction = new function() { alert('myFunction is running'); clearTimeout(timeout); // this way will not run infinitely } 
  

虽然它不使用jQuery,但你也可以看看这里描述的去抖动function。

史蒂夫