使用keydown进行变量更改
Making a variable change with keydown
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
此功能已从Web标准中删除。尽管一些浏览器可能仍然支持它,但它正在被删除。
这是因为您在函数外更改了它。
JS:
var x = 50;
var y = 50;
document.addEventListener("keydown", checkKey, false);
function checkKey(e) {
if (e.keyCode == "37") {
x--;
document.getElementById("test").innerHTML = x;
}
}
document.getElementById("test").innerHTML = x;
HTML: <div id="test"></div>
http://codepen.io/DaCurse0/pen/VKQYJb 使用x- 1代替x-,并将innerHTML放入if条件
var x = 50;
var y = 50;
document.addEventListener("keydown", checkKey, false);
function checkKey(e) {
if (e.keyCode == "37") {
x = x - 1;
document.getElementById("test").innerHTML = x;
}
}
这里是工作小提琴:https://jsfiddle.net/2oz87hvr/
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 如何在php变量中嵌入JQuery代码
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在javascript函数中设置全局变量
- 将变量传递给外部Javascript
- 使用keydown进行变量更改