我想知道如何只用javascript我可以切换一个名为x的变量,如果关键"c"正在被施压。我想要的是当关键字",则变量由0变为1,当按下"c"被解除,它将恢复为0。如何做到这一点?我已经声明了这个变量并将其命名为x。
let x = 0;
在document
上添加两个事件侦听器,一个用于keydown,另一个用于keyup。
注意,keydown
将反复触发,所以当您将x
切换到1
时,您应该删除事件侦听器以避免这种情况。当x
切换回0
时,可以重新添加侦听器。
let x = 0
const toggle = ({ code, type }) => {
if (code === "KeyC") { // check for the "c" key
x ^= 1 // toggle `x`
console.log(type, "set x to", x)
return true // return a flag so we know when x is modified
}
}
const keydownHandler = e => {
if (toggle(e)) {
// remove the event listener to avoid repeats
document.removeEventListener("keydown", keydownHandler)
}
}
document.addEventListener("keydown", keydownHandler)
document.addEventListener("keyup", e => {
if (toggle(e)) {
document.addEventListener("keydown", keydownHandler)
}
})