jquery 键盘延迟被忽略
jquery keyup delay is being ignored
好的,也许有人可以告诉我我在这里缺少什么。我有一个文本框,它根据用户输入使用 ajax 调用更新 jquery 数据 table。显然,希望仅在用户完成输入时触发 ajax 调用。
然而,无论我从 SO 和其他地方尝试什么片段,超时都会被忽略,ajax 会立即触发。我想知道是否有人可以指出正确的方向。
var timer;
$("#search_query").on('keyup', function() {
clearInterval(timer); //clear any interval on key up
timer = setTimeout(alert("test"), 3000);
});
您必须将一个函数作为第一个参数传递给超时函数。现在您正在传递 alert("test") 调用的结果。
var timer;
$("#search_query").on('keyup', function() {
clearInterval(timer); //clear any interval on key up
timer = setTimeout(function(){ alert("test"); }, 3000);
});
这应该有效。
试试这个setTimeout( 'you need to pass function here', 300 )
var timer;
$("#search_query").on('keyup', function() {
clearInterval(timer); //clear any interval on key up
timer = setTimeout(hello, 3000);
});
function hello(){
alert("test");
}
好的,也许有人可以告诉我我在这里缺少什么。我有一个文本框,它根据用户输入使用 ajax 调用更新 jquery 数据 table。显然,希望仅在用户完成输入时触发 ajax 调用。
然而,无论我从 SO 和其他地方尝试什么片段,超时都会被忽略,ajax 会立即触发。我想知道是否有人可以指出正确的方向。
var timer;
$("#search_query").on('keyup', function() {
clearInterval(timer); //clear any interval on key up
timer = setTimeout(alert("test"), 3000);
});
您必须将一个函数作为第一个参数传递给超时函数。现在您正在传递 alert("test") 调用的结果。
var timer;
$("#search_query").on('keyup', function() {
clearInterval(timer); //clear any interval on key up
timer = setTimeout(function(){ alert("test"); }, 3000);
});
这应该有效。
试试这个setTimeout( 'you need to pass function here', 300 )
var timer;
$("#search_query").on('keyup', function() {
clearInterval(timer); //clear any interval on key up
timer = setTimeout(hello, 3000);
});
function hello(){
alert("test");
}