document.onkeydown不工作,或只工作一次

时间:2015-11-06 03:25:02

标签: javascript

所以我有以下内容:

document.onkeydown = function(e) {
    e = e || window.event;
    if (e.keyCode == 119) {
        if (currentMode == 3) {
            currentMode = 0;
        } else {
            currentMode = currentMode++;
        }
        switchMode(currentMode);
    }
};

我尝试了documentbodypress/down/up的几种组合,似乎都没有效果。更糟糕的是,代码(不是这个,但是前一个迭代)工作,直到我删除了某个元素。 现在它要么运行一次,要么不再检测到按键,或者按键从未被识别开始。

如有必要,我会在整个页面中编辑。

1 个答案:

答案 0 :(得分:1)

这不是正确的增量:

currentMode = currentMode++;

您的currentMode永远不会增加,因为它会分配相同的值。

将其更改为:

currentMode++;

它会起作用(keyCode 119 F8 ):

var currentMode = 0;

document.onkeydown = function(e) {
    e = e || window.event;
    if (e.keyCode == 119) {
        if (currentMode == 3) {
            currentMode = 0;
        } else {
            currentMode++;
        }
        switchMode(currentMode);
    }
};

function switchMode(mode) {
    document.getElementById('mode').innerText = mode;
}
Current mode: <span id="mode">0</span>