如何实现每次按键时执行setInterval函数,不按键时停止?

问题描述 投票:0回答:1

我需要仅在按下特定键(本例中为“F”)时执行 setInterval 函数,然后在未按下该键时清除它。

我试过这个:

var process;

function func(){
    console.log('just for example');
}

window.addEventListener("keydown", (e)=>{
    if(e.key === "f") process = setInterval(func, 100);
});

window.addEventListener("keyup", (e)=>{
    if(e.key === "f") clearInterval(process), process = null;
});

但是当我释放F键时,该函数继续执行。非常感谢任何帮助:D

javascript setinterval addeventlistener keydown keyup
1个回答
0
投票

使用

??=
仅设置一次间隔:

var process;

function func(){
    console.log('just for example');
}

window.addEventListener("keydown", (e)=>{
    if(e.key === "f") process ??= setInterval(func, 100);
});

window.addEventListener("keyup", (e)=>{
    if(e.key === "f") clearInterval(process), process = null;
});

© www.soinside.com 2019 - 2024. All rights reserved.