使用 jquery "keypress" 函数时如何禁用按键加速?

how would i disable keypress ramp-up when using jquery "keypress" function?

https://jsfiddle.net/pk2dLxuy/ 是我的 fiddle.

$(document).keypress(function(keydetect) {
if(keydetect.which == 119) {
       console.log("w")
    }
if(keydetect.which == 97) {
       console.log("a")
    }
if(keydetect.which == 115) {
       console.log("s")
    }
if(keydetect.which == 100) {
       console.log("d")
    }
});

目前,此程序在激活时会检测任何 "WASD" 键,并将它们输出到控制台。

但是,当您开始按住其中一个 "WASD" 键时,它开始时会很慢,然后会加速到全速。

我如何才能让它在按住密钥时始终以全速登录到控制台?

我 运行 在 Mac 上使用下面的代码。有一个初始延迟,但恐怕是外部按键重复延迟。不在你的控制之下。 为了避免这种情况,您需要一个循环,其中按键状态由按键设置并重复。取消键。这将使您可以更好地控制它而不依赖于系统。这有意义吗?

var key;
var count = 0;

const setKey = (keyPressed) => {
  if(keyPressed != key) {
    count = 0;
    key = keyPressed;
    } else { 
    count++;
    }
    document.querySelector('#key').innerHTML = count;
};

$(document).keypress(function(keydetect) {
if(keydetect.which == 119) {
       console.log("w");
       setKey('w');
    }
if(keydetect.which == 97) {
       console.log("a");
       setKey('a');
    }
if(keydetect.which == 115) {
       console.log("s");
       setKey('s');
    }
if(keydetect.which == 100) {
       console.log("d");
       setKey('d');
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="key"></div>