【问题标题】:keypress event is detecting multiple keypresses when a key is pressed only once in javascriptkeypress 事件在 javascript 中仅按一次键时检测到多个按键
【发布时间】:2021-04-18 05:42:36
【问题描述】:

我在 HTML 文档中添加了一个事件监听器,并做了 console.log(event)。 但是当我按下一个键时,控制台会显示相同按键的多个事件。

document.addEventListener("keydown", function(e){
    console.log(event);
})

【问题讨论】:

    标签: javascript html dom keypress event-listener


    【解决方案1】:

    使用 keyup 代替 keydown:

    document.addEventListener("keyup", function(e){
        console.log(e);
    })
    

    【讨论】:

      【解决方案2】:

      您的代码已损坏,因为您使用了e 作为参数。但是你console.log(event)使用console.log(e)

      【讨论】:

      【解决方案3】:

      您的函数将 e 作为参数,而您的 console.log 显示事件而不是参数。 使用这个:

      document.addEventListener("keydown", function(e){
          console.log(e);
      })
      

      而不是这个:

      document.addEventListener("keydown", function(e){
          console.log(event);
      })
      

      您也可以使用 onkeydown 事件处理程序:

      document.addEventListener("onkeydown", function(e){
          console.log(e);
      })
      

      【讨论】:

      • 您可能想重新阅读 OPs 问题,尽管不鼓励使用全局事件并且 OP 应该更改它,但它仍然有效。还要尽量避免投票,这有点令人毛骨悚然.. :)
      猜你喜欢
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 2021-12-18
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      相关资源
      最近更新 更多