标题说明了一切,我知道通过Javascript解决这个问题的一种非常愚蠢的方法,但我想知道......如果有更聪明的方法吗?可能有。用户可以根据需要按“G”,这将调用函数 g_pressed(); 。 jquery中的解决方案也很好。
这是我的解决方案:
var allowed = false;
var allowed_key = 0;
function g_pressed(){
allowed = false;
allowed_key++;
setTimeout('allowed_check('+allowed_key+');', 2000);
}
function allowed_check(key){
if(key==allowed_key){
allowed = true;
}
}
正如你所看到的,它长达12行。
答案 0 :(得分:4)
您希望将Timeout
存储在变量中,并在clear
触发时g_pressed()
存储:
var myTimeout;
function g_pressed(){
clearTimeout(myTimeout);
allowed = false;
allowed_key++;
myTimeout = setTimeout('allowed_check', 2000, allowed_key);
}
答案 1 :(得分:0)
如果要发送参数,则需要执行匿名功能:
var allowed = false;
var allowed_key = 0;
function g_pressed(){
allowed = false;
allowed_key++;
setTimeout(function(allowed_key){
if(key==allowed_key){
allowed = true;
}, 2000);
}