目前我有
$('document').ready(function(){
$('input').keyUp(function(){
$('#output').text($(this).text());
});
});
我想做的是,
当按键被注册等待500ms时, 如果在500毫秒内再次按下一个键, 从那个按键等待500ms。
一旦500ms过去了, 运行$('#output').text($(this).text());
我将如何管理超时?
答案 0 :(得分:6)
您可以设置和清除计时器,如下所示:
$(function(){
$('input').keyup(function(){
clearTimeout($.data(this, 'timer'));
var input = this;
$.data(this, 'timer', setTimeout(function() {
$('#output').text($(input).text());
}, 500));
});
});
这样做keyup
它在运行$('#output').text($(input).text())
之前设置了500ms的延迟,如果在此之前按下另一个键,它会取消计时器并启动另一个...所以它不会运行到500ms空闲。此外,通过使用$.data()
将计时器存储在特定元素上,此通用解决方案适用于页面上的任意数量的元素。
顺便说一下,$('document').ready()
应该是$(document).ready()
或者像我上面那样更短$(function() {
,"document"
(在引号中)不必要地运行选择器。