javascript - JS函数在执行后的特定时间内自禁用
问题描述
我正在尝试创建一个由按键执行并在执行后禁用特定时间的函数。
function do_something() {
console.log('lorem ipsum');
}
document.onkeypress = function(e) {
if (e.keyCode == '32') {
do_something();
}
}
有没有办法在每次执行后禁用它(比如说)2秒?
解决方案
是的,有一种方法:使用Timeout临时将布尔值设置为某个值,然后在调用之前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所指出的:根据准确性的重要性,也许这不是最好的方法,因为(如您在此处看到的)它可能不准确。
推荐阅读
- android - 是否有对内置设备警报系统的 android/ios 的编程访问
- jenkins - groovy.lang.MissingPropertyException:没有这样的属性:类的管道:groovy.lang.Binding
- python - Python字典如何在for循环中调用第一个元素
- python - 应用 np.gradient 函数的不一致
- python - 使用 selenium Python 对多个搜索词进行迭代搜索
- javascript - 如何将多个参数传递给 vuex getter?
- r - 了解 ifelse 的工作原理
- php - 如何在 PHP 中通过 cURL 获取此节点 ID?
- python - 未正确调用 DataFrame 构造函数!使用 JSON
- swift - 如何在不通过选择器 Swift 的情况下将参数传递给方法?