[英]keypress event not firing on right arrow key
我已经设置了一个按键事件,当用户单击键盘上的右箭头键时应该触发该事件。 由于某种原因,它没有开火。 使用 Chrome 开发工具确认事件没有触发。 当用户按下右键时,它应该在网页上插入一张图片(并删除另一张图片)。
有很多代码,所以我很抱歉,但我只会输入我认为相关的内容。
这是事件侦听器:
document.addEventListener("keypress", (event) => {
if (event.keycode === 39 || event.which === 39) {
newPosition = `box-${currentPos + 1}`;
naviCtrl.removeCharacter(DOMstrings);
naviCtrl.rightBtn(currentPos, chosenCharacter, newPosition);
}
});
这是rightBtn方法:
rightBtn: (currentPos, chosenCharacter, newPosition) => {
if (newPosition.style.border-left === "none" && currentPos.style.border-right === "none") {
document.getElementById(newPosition).insertAdjacentHTML("beforeend", '<img class="character-img character-box" src="' + chosenCharacter + '">');
console.log(newPosition);
使用此 init function 加载页面时设置事件侦听器:
return {
init: () => {
setupEventListeners()
}
};
可以看到,这个方法在这里被全局调用:
appController.init();
事件侦听器keypress
已弃用, event.which
也是如此。 在这种情况下,您应该(可能)使用keydown
,以及右箭头 ( ArrowRight
) 的正确键码,如下所示:
document.addEventListener("keydown", (event) => {
if (event.keycode === "ArrowRight" || event.which === 39) {
newPosition = `box-${currentPos + 1}`;
naviCtrl.removeCharacter(DOMstrings);
naviCtrl.rightBtn(currentPos, chosenCharacter, newPosition);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.