javascript - 通过 keydown 进行变量更改

标签 javascript

var x = 50;
var y = 50;
document.addEventListener("keydown", checkKey, false);
function checkKey(e) {
  if (e.keyCode == "37") {
   x = x--;
  }
}
document.getElementById("test").innerHTML = x;

当我这样做时,按向左箭头不会改变 x。因此,“test”的innerHTML 不会改变,它保持在50。为什么?

最佳答案

它肯定会更改变量,只是您没有更新 HTML。

innerHTML 行放置在事件处理程序内部,以便在有人按下按钮时更新,而不仅仅是在页面加载时更新

var x = 50;
var y = 50;
document.addEventListener("keydown", checkKey, false);
function checkKey(e) {
  if (e.keyCode == "37") {
   x = x--;
   document.getElementById("test").innerHTML = x;
  }
}

注意KeyboardEvent.keyCode不一致,根据MDN

This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped.

关于javascript - 通过 keydown 进行变量更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39900930/

相关文章:

javascript - (多个)axios Post请求/参数问题

javascript - 按钮类型 ="button"在 JavaScript 中意味着什么

javascript - JavaScript 中的代码含义 "document.getElementById(' msg').innerHTML

JavaScript 验证提交时更改值

javascript - 如何在JavaScript中改变window.location.href然后执行更多的JS?

javascript - js 文件的简单合并导致错误和 jquery 未定义

javascript - 在 Angular 应用程序中使用外部 javaScript 库

javascript - amCharts-Angular 动态更新图表数据

javascript - 传递动态数据 Victory-native 图表

c# - MVC $.ajax 调用从不在 Edit 上执行 Controller 操作,但在 Add 上工作