我制作了一段代码,用箭头上下垂直移动6个项目前面的元素.当按下enter时,我将加载一组带有该项目的图像.代码工作正常,但在输入命中后,这段代码需要停止,所以我可以用箭头键做其他事情并输入.现在它只是在输入被击中后继续前进.我尝试使用var检查,但是我似乎无法从交换机内部更改变量.有人知道如何使这项工作?
代码语言:javascript复制var enterPushed = false;
if(!enterPushed){
document.addEventListener('keydown', function(event){
if(event.keyCode == 38){
console.log("up");
if(margTop > 122){
margTop = margTop - 60;
marginTop();
i = i - 1;
bliep.play();
}
}
if(event.keyCode == 40){
console.log("down");
if(margTop < 422){
margTop = margTop 60;
marginTop();
i = i 1;
bliep.play();
}
}
if(event.keyCode == 13){
switch(i){
case 1:
enterPushed = true;
startup(1);
break;
case 2:
enterPushed = true;
startup(2);
break;
case 3:
enterPushed = true;
startup(3);
break;
case 4:
enterPushed = true;
startup(4);
break;
case 5:
enterPushed = true;
startup(5);
break;
case 6:
enterPushed = true;
startup(6);
break;
}
}
});
}
Mati Tucci.. 9
现在你可以once
在options
对象中传递一个布尔值,如下所示:document.body.addEventListener('click', _ => console.log('once'), {once: true});
资料来源: https ://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
浏览器兼容性: Chrome 55,Firefox 50,Safari(WebKit).
1> Mati Tucci..:
现在你可以once
在options
对象中传递一个布尔值,如下所示:document.body.addEventListener('click', _ => console.log('once'), {once: true});
资料来源: https ://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
浏览器兼容性: Chrome 55,Firefox 50,Safari(WebKit). 2> Kolby..:
如果要停止所有键事件,只需删除事件侦听器即可.
代码语言:javascript复制var enterPushed = false;
var handleKeyDown = function(){
if(event.keyCode == 38){
console.log("up");
}
if(event.keyCode == 40){
console.log("down");
}
if(event.keyCode == 13){
console.log('enter');
document.removeEventListener('keydown', handleKeyDown);
}
};
document.addEventListener('keydown', handleKeyDown);
如果你想停止只听输入或特定键,你可以添加一个标志并检查它和键码.这看起来就像你在这里几乎所做的那样.我完成了逻辑并减少了代码:
代码语言:javascript复制if(event.keyCode == 13 && enterPushed){
enterPushed = true;
startup(i);
}
这不是`.removeEventListener()`的工作原理.您需要提供原始功能.