簡體   English   中英

JavaScript鍵盤事件和比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM