我正在尝试创建一个由按键执行并在执行后的特定时间内禁用的函数。
function do_something() {
console.log('lorem ipsum');
}
document.onkeypress = function(e) {
if (e.keyCode == '32') {
do_something();
}
}
有没有办法在每次执行后将其禁用(比方说)2 秒?
最佳答案
是的,有一种方法:使用Timeout 暂时将 bool 值设置为特定值,然后在调用do_something()
之前检查它的值.
例子:
let cooldown = false;
const RECHARGE_TIME = 2000; //ms
function do_something() {
console.log('lorem ipsum');
}
document.onkeypress = function(e) {
if (!cooldown && e.keyCode == '32') {
do_something();
startCooldown();
}
}
function startCooldown() {
cooldown = true;
setTimeout (function(){ cooldown = false}, RECHARGE_TIME);
}
编辑:Mosè Raguzzini 指出:根据准确性的重要性,这可能不是最好的方法,因为(如您所见 here )它可能不准确。
关于javascript - JS Function 执行后特定时间自禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53838048/