javascript - 如果键在 javascript 循环中关闭,则返回 true?

标签 javascript jquery

我想在循环中添加一个条件,测试右箭头是否被按下以及它是否向右移动了一个 div。但是我不知道如何检查他们的按键。

我正在使用代码来执行此操作,但它确实很长,我确信有更短的方法来执行此操作。

这是代码:

    <div id="char"></div>
    <script>
    setInterval(function() {

// here it should check if RIGHT (keycode 39) is down and move char 10px to the right if it is;

    }, 20);
    </script>

如何检查循环内的 keydown?顺便说一句,我还在网站上使用 jQuery。

谢谢

最佳答案

在原始 JS 中你会做这样的事情(按预览然后按住 w):

http://jsbin.com/odalo3/edit

var isPressed = false;

var keydown = function(e){ 
  if(e.keyCode == 87){
    isPressed = true;
  }
}
var keyup = function(e){
    isPressed = false;
}

document.addEventListener("keydown",keydown,false);
document.addEventListener("keyup",keyup,false);

setInterval(function(){
  if(isPressed){
    document.getElementById('hello').innerHTML = document.getElementById('hello').innerHTML+', pressed';
  } 
},100)

更新

如果您使用的是 jQuery,则可以将 eventListeners 更改为:

$(window).keydown(function(e){
   if(e.keyCode == 87){
     isPressed = true;
   }
})
.keyup(function(e){
  isPressed = false;
})

并删除这些行:

var keydown = function(e){ 
  if(e.keyCode == 87){
    isPressed = true;
  }
}
var keyup = function(e){
    isPressed = false;
}

document.addEventListener("keydown",keydown,false);
document.addEventListener("keyup",keyup,false);

但这是一回事。

关于javascript - 如果键在 javascript 循环中关闭,则返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103186/

相关文章:

javascript - 如何更改包含字符串的元素之上的类?

php - 重定向到另一个页面

javascript - jqGrid 问题分组 - 每次更改排序时都会附加重复的行

javascript - 如何在 Jquery mobile 中链接内部页面?

javascript - 在 JavaScript 中使用原型(prototype)继承的正确方法?

jquery - 未捕获绘图尺寸无效,图表 api 的宽度 = null,高度 = null

javascript - 传单标记点击显示数据在div中

javascript - 在 Java 中使用 Mysql 和 servlet

javascript - 如何在 javascript 中去除 HTML <p> 标签而不使用正则表达式

javascript - 如何在 Ember 中的同一组件上编辑待办事项任务