按下“c”键时Javascript切换变量
我想知道如果按下键“c”,我如何只使用 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)
}
})