[英]JavaScript Keyboard events and comparison
我編寫了一個函數,該函數應檢查是否按下了某個特定按鈕。 但是,它似乎總是返回false。 這是功能:
function keyPressed(ev) {
var r = false;
document.onkeypress = function(e) {
if (ev == e.which || ev == e.keyCode) {
r = true;
}
}
return r;
}
這就是您的稱呼方式:
if (keyPressed(119)) {
// do something
}
檢查警報時,當我按“ W”時,它們似乎是相同的數字,但該功能始終返回false。 它們是不同的類型嗎?
每次您按下一個鍵,都會執行document.onkeypress
。 但是keyPressed
僅在調用時才會執行。 因此,除非您在按下touch的同時啟動keyPressed(touch)
,否則它將始終返回false。
您要做的是:當我調用keyPressed(
)時,將一個函數綁定到document.onkeypress
。 然后返回r,該值尚未被綁定修改。
我建議您嘗試在大型document.onkeypress
函數中放置帶有回調的類似開關的結構。
獎勵:不推薦使用e.key,請盡可能使用e.key。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.