我想通过按住右箭头键来增加一个整数。我做的函数可以工作,但返回速度太快。
document.onkeydown = function (e) {
e = e || window.event;
if (e.keyCode == '39') {
var steps = localStorage.getItem("steps");
if (+steps < 9) {
if (+steps === +steps) {
localStorage.setItem("steps", +steps + +1)
}
} else {
localStorage.setItem("steps", +steps - +10);
}
var sss = localStorage.getItem("steps");
unicorn.className = "unicorn_" + sss + "";
return false;
}
}
上面的代码是我现在所在的位置。我正在使用 localStorage 检查存储的整数,如果匹配则递增。一旦整数达到 9,就会减回 0。
谁能看出我做错了什么,或者做得不对吗?
最佳答案
您还可以使用闭包手动跟踪时间:
document.onkeydown = (function () {
var T0 = Date.now();
return function (event) {
if (Date.now() - T0 > 500) {
console.log("doing my thing over here", Math.random());
T0 = Date.now();
}
}
})();
关于javascript - 有没有办法让 "onkeydown"返回速度变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992111/