我想用不同的按键触发代码:
document.addEventListener("keydown", event => {
;(async () => {
if (event.key === 'b' && event.ctrlKey) {
alert('1')
} else if (event.code === 'Space' && event.ctrlKey) {
alert('2')
} else if (event.code === 'q' && event.ctrlKey) {
alert('3')
}
})()
})
奇怪的是,最后一个 if 语句不会触发。即使我把b
换成q
.
可能是什么原因?
没有任何错误。
https://jsfiddle.net/wn78dc5r/
将code
更改为key
else if (event.key === 'q' && event.ctrlKey)
这是因为event.code
在按下q
的情况下返回KeyQ
。请尝试改用event.key
。
我会稍微简化实现,例如删除 IIFE 和异步,并重用event.ctrlKey
:
document.addEventListener("keydown", event => {
if (!event.ctrlKey) return
if (event.key === 'b') {
alert('1')
} else if (event.code === 'Space' ) {
alert('2')
} else if (event.key === 'q') {
alert('3')
}
})