在最后一次按键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。
史蒂夫