所以引用这个: How to delay the .keyup() handler until the user stops typing?
我想出了以下代码。但它什么都不做......有什么建议吗?
我试图让 setTimeout 在用户输入更多内容时取消,这样就不会出现多个警报,只有在用户最终“停止”(希望如此)时才会出现一个。
谢谢!!
var t = 0;
$('input').keyup(function(){
clearTimeout(t);
t = setTimeout(alert($('input').val()),1000);
}
最佳答案
替换
t = setTimeout(alert($('input').val()),1000);
与
t = setTimeout(function(){alert($('input').val())},1000);
您将输入值传递给 setTimeout,而 setTimeout需要一个函数(或它可以作为代码评估的字符串)作为第一个参数。
并将最后一行替换为 });
以便代码编译。
关于onkeup 后的 javascript 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536037/