在javascript中清空键盘缓冲区
如果我有一个元素在javascript中清空键盘缓冲区,javascript,jquery,Javascript,Jquery,如果我有一个元素 $('#div').keydown(function(event) { .... 若用户在很短的时间内像疯兔子一样按了上千次键,浏览器就会对大多数呼叫做出响应 我是否可以通过刷新键盘缓冲区来防止这种情况发生?您可以查看演示如何抑制函数调用并使疯狂的兔子平静下来的 function debounce(fn, delay) { var timer = null; return function () { var context = this, args = arg
$('#div').keydown(function(event) { ....
若用户在很短的时间内像疯兔子一样按了上千次键,浏览器就会对大多数呼叫做出响应
我是否可以通过刷新键盘缓冲区来防止这种情况发生?您可以查看演示如何抑制函数调用并使疯狂的兔子平静下来的
function debounce(fn, delay) {
var timer = null;
return function () {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
$('input.username').keypress(debounce(function (event) {
// do the Ajax request
}, 250));
您可以查看演示如何抑制函数调用并使疯狂的兔子平静下来的
function debounce(fn, delay) {
var timer = null;
return function () {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}
$('input.username').keypress(debounce(function (event) {
// do the Ajax request
}, 250));
这是一种处理过多keydown调用的简单方法
var timeout = false; //I'd recommend defining this variable within a local scope
$('#div').keydown(function(event) {
if(timeout) return;
timeout = true;
setTimeout(function(){timeout=false}, 100);
//Change 100 to something more appropriate
//Rest of function
}
这是一种处理过多keydown调用的简单方法
var timeout = false; //I'd recommend defining this variable within a local scope
$('#div').keydown(function(event) {
if(timeout) return;
timeout = true;
setTimeout(function(){timeout=false}, 100);
//Change 100 to something more appropriate
//Rest of function
}
你到底想阻止什么?快速打字?您可以简单地选择忽略上一个键N毫秒内的击键。只需确保您不会阻止实际键入快的人。:)你到底想阻止什么?快速打字?您可以简单地选择忽略上一个键N毫秒内的击键。只需确保您不会阻止实际键入快的人。:)@阿格扎姆,只是我已经经历了这一切。你还记得吗?我甚至不记得早餐吃了什么谢谢你,伙计…@Agzam,我也是,我什么都不记得了。我只知道我现在正在喝啤酒,如果我需要找点什么东西,我就用谷歌搜索一下。@Agzam,我只是在我的经历中经历了这一切。你还记得吗?我甚至不记得早餐吃了什么谢谢你,伙计…@Agzam,我也是,我什么都不记得了。我只知道我现在正在喝啤酒,如果我需要找点什么,我就用谷歌搜索一下。我不知道你在这段代码中想做什么,但是变量
timeout
一旦按下第一个键,就永远不会得到错误的值。我认为设置超时之前的timeout=true
语句是多余的;您立即覆盖它。@pimvdb您读过问题了吗?只有当用户具有难以置信的快速打字能力时,此添加才会显示生命迹象。@Rob W:是的,也许我误解了,但同时timeout
将具有超时的ID,而不是true
值。您能告诉我将超时ID存储到timeout
变量中的原因吗?我的错,我的脑子被延迟方法占据了(如图所示)。我不知道您在这段代码中想做什么,但是变量timeout
一旦按下第一个键,就不会得到错误的值。我认为设置超时之前的timeout=true
语句是多余的;您立即覆盖它。@pimvdb您读过问题了吗?只有当用户具有难以置信的快速打字能力时,此添加才会显示生命迹象。@Rob W:是的,也许我误解了,但同时timeout
将具有超时的ID,而不是true
值。您能告诉我将超时的ID存储到timeout
变量中的原因吗?我的错,我的脑子被延迟方法占据了(如图所示)。