javascript - JS Function 执行后特定时间自禁用

标签 javascript

我正在尝试创建一个由按键执行并在执行后的特定时间内禁用的函数。

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/

相关文章:

javascript - 如何获取点击时输入的值

javascript - 当网站响应时,HTML/CSS 导航下拉菜单和子下拉菜单不显示

javascript - window.open 将当前窗口发送到 0

javascript - 服务器在WebRTC聊天室中的作用是什么?

javascript - 展平嵌套 json 对象

javascript - 阻止父页面向下滚动到 iframe

javascript - Protractor 无法计算列表中的链接 (li)

javascript - 如何在 React 中测试类组件

javascript - 使用 C# 在 GridView 中显示前一天的日期与系统日期相比?

javascript - 仅检查字母的正则表达式