Javascript 有没有一种方法可以使;onkeydown“;回程慢一点
我想通过按住向右箭头键来增加一个整数。我创建的函数可以工作,但返回速度太快Javascript 有没有一种方法可以使;onkeydown“;回程慢一点,javascript,Javascript,我想通过按住向右箭头键来增加一个整数。我创建的函数可以工作,但返回速度太快 document.onkeydown = function (e) { e = e || window.event; if (e.keyCode == '39') { var steps = localStorage.getItem("steps"); if (
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;
}
}
document.onkeydown=函数(e){
e=e | | window.event;
如果(e.keyCode=='39'){
var steps=localStorage.getItem(“步骤”);
如果(+步骤<9){
如果(+步数===+步数){
setItem(“步骤”、+steps++1)
}
}否则{
setItem(“步骤”、+steps-+10);
}
var sss=localStorage.getItem(“步骤”);
unicorn.className=“unicorn_quot+sss+”;
返回false;
}
}
上面的代码就是我现在的位置。我使用localStorage检查存储的整数,如果匹配,则递增。一旦整数变为9,它将减回到0
谁能看清我做错了什么,或者没有做正确的事?
< P>如果你不希望它执行<代码>太快< /Cord>请考虑把它放在<代码> SETTIMEOUTvar notTooFast = false;
var timeout = 1000; // change it whatever you want to be
document.onkeydown = function (e) {
e = e || window.event;
if (e.keyCode == '39') {
if (!notTooFast)
{
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 + "";
notTooFast = true;
setTimeout(function () {
notTooFast = false;
}, timeout);
return false;
}
}
}
var notTooFast=false;
变量超时=1000;//改变它,无论你想成为什么
document.onkeydown=函数(e){
e=e | | window.event;
如果(e.keyCode=='39'){
如果(!不太快)
{
var steps=localStorage.getItem(“步骤”);
如果(+步骤<9){
如果(+步数===+步数){
setItem(“步骤”、+steps++1)
}
}否则{
setItem(“步骤”、+steps-+10);
}
var sss=localStorage.getItem(“步骤”);
unicorn.className=“unicorn_quot+sss+”;
notTooFast=true;
setTimeout(函数(){
notTooFast=假;
},超时);
返回false;
}
}
}
您还可以使用闭包手动跟踪时间:
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();
}
}
})();
setTimeout(function(){//您想要延迟的代码在这里},500);嗯,我之前用过一个超时,但是只有100,不是500。我现在就试一下,我建议避免重新发明轮子,谢谢你的回答,我不知道我可以用这种方式使用布尔型的超时。你今天学我了。