当前位置: 首页 > 知识库问答 >
问题:

两个“多键按下”代码示例之间有什么问题?

巴学潞
2023-03-14

我试图同时按下多个键的功能。我找到了一些答案。我在关注这个。

多键关闭

问题是我有一些代码可以工作。但我的版本不起作用。我完全不知道发生了什么。

答案中的代码

var keys;

document.getElementById('demo').addEventListener("keydown", function (e) {
    keys = (keys || []);
    keys[e.keyCode]=true;

    if (keys[65] && keys[66]){
        document.body.style.backgroundColor = "red";
    }
} , false);

document.getElementById('demo').addEventListener("keyup", function (e) {
    keys[e.keyCode]=false;
    document.body.style.backgroundColor = "green";
    stop();
}, false);

我的代码版本是。

var keys;

document.getElementById('demo').addEventListener("keydown", function (e) {
keys = (keys || []);
    keys[e.keycode]=true;
    if (keys[65] && keys[66]){
    document.body.style.backgroundColor = "red";
}
} , false);
document.getElementById("demo").addEventListener("keyup", function (e) {
    keys[e.keycode]=false;
    document.body.style.backgroundColor = "green";
//stop();
} , false);

在我的代码版本中,第一部分不起作用。我不知道为什么?

共有2个答案

陆畅
2023-03-14
  1. keycode需要在两个位置都写为keycode
  2. 确保demo元素是一个输入,它不能与div等一起使用
汤玉宸
2023-03-14

源语言

js lang-js prettyprint-override"> keys[e.keyCode]=true; 
stop(); 
 类似资料:
  • 我从Horstmann book(Volume2)中复制了代码示例,不明白为什么它不能工作。你能帮我吗?我试图删除IOException,但它引发了另一个问题 控制台日志

  • 我正在浏览微软的Rust教程,它是关于 实现函数,以便返回对插入向量中的值的引用 这里给出了解决方案,但它与我的不同之处在于它使用了 除了返回类型之外,我的和标准解决方案之间的另一个区别是,我只是简单地返回了参数,而标准解决方案使用复杂方式)。 我想知道我的解决方案是否有任何问题,本教程采取了另一种方式? 虽然@Masklin为我的问题提供了一个很好的答案,但它有点特定于我给出的示例,但没有直接解

  • 错误: Test.ts(18,30):错误TS2345:类型为“{color1:String;}”的参数不能分配给类型为“squareConfig”的参数。对象文本只能指定已知属性,并且“SquareConfig”类型中不存在“Color1”。

  • 我试图做一个代码,将打印所有元素的内容与从一些链接,但它不起作用,我不知道为什么,这是代码: 当我粘贴“someurl”而不是

  • 问题内容: 我有以下方法可以在Angular中捕获按键: 我听着 但是,我想检测何时同时按下两个键,例如和同时按下(不是一个一个又一个又一个的组合)。 最好的方法是什么? 编辑 我当时想的是: 因此,如果我有多个按键,那么我将创建正确的。但是,问题在于,现在顺序很重要(即,如果我按then ,则按is ;如果我按另一种方式按,则得到) 问题答案: 我认为广播使用过多。而是使用自定义指令?这是一个用