如何摆脱 JavaScript KeyUp 缺陷或完全使用其他东西

问题描述 投票:0回答:1

当我在 JavaScript 中使用按键事件侦听器时,按键会在重新开始之前“等待”。我认为这是因为按键需要监听特定的按键,但对我来说还没有起作用。

我已经尝试使用不同的教程来解决这个问题的不同观点,但它们都没有为我工作......我想我只需要不使用按键事件侦听器,但我不确定如何使用。我只了解 javascript 几个星期,所以我不知道如何使用高级方法。

    var key = "";
    onkeyup = e => {
      key = e.code;
    }
    onkeydown = e => {
      key = "";
    }
    setInterval(e => {
      document.getElementById(test).innerText = key;
    }, Infinity);
<p id="test"></p>
javascript keyup
1个回答
0
投票

考虑使用

keydown
代替。尝试运行这个例子;请注意,当您按下某个键时,“向下”状态实际上应该立即发生,而“向上”状态直到您释放该键才会发生(导致明显的延迟)。

window.addEventListener('keydown', () => document.querySelector('.state').textContent = 'down');
window.addEventListener('keyup', () => document.querySelector('.state').textContent = 'up');

window.addEventListener('focus', () => document.querySelector('.focus').style.display = 'none');
window.addEventListener('blur', () => document.querySelector('.focus').style.display = '');
<div class="focus">WINDOW IS UNFOCUSED; CANNOT PROCESS KEY EVENTS (please click)</div>
<p>Press any button (one at a time) and then release it to see whether it is "up" or "down"</p>
<p>Current state: <span class="state">up</span></p>

© www.soinside.com 2019 - 2024. All rights reserved.