javascript - 如何在javascript中捕获双键?

标签 javascript keypress

我希望能够捕获双键按下(例如对于 Char T)以便进行一些特殊处理。我希望按键发生得足够快,不会被解释为两次单独的按键,就像双击一样。 有什么想法可以实现吗?

最佳答案

当按键被击中时,记下时间。然后将它与您记下的最后键被击中的时间进行比较。

如果差异在您的阈值之内,则将其视为两倍。否则,不要。粗略的例子:

var delta = 500;
var lastKeypressTime = 0;
function KeyHandler(event)
{
   if ( String.fromCharCode(event.charCode).toUpperCase()) == 'T' )
   {
      var thisKeypressTime = new Date();
      if ( thisKeypressTime - lastKeypressTime <= delta )
      {
        doDoubleKeypress();
        // optional - if we'd rather not detect a triple-press
        // as a second double-press, reset the timestamp
        thisKeypressTime = 0;
      }
      lastKeypressTime = thisKeypressTime;
   }
}

关于javascript - 如何在javascript中捕获双键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223764/

相关文章:

Javascript - onKeyPress 事件的 W 字符代码不起作用

javascript - 通过 AngularJS 将文本框元素动态添加到表单

javascript - 带 div 和 d3 缩放的 d3 力图

javascript - 如何防止浏览器在哈希更改时滚动到顶部?

javascript - 测试执行期间Vue警告

c++ - 你如何在 Qt 中获得一个小部件的 child ?

javascript - 如何在 JQuery 中触发选择的事件(按键或模糊)

c# - 使特定列仅接受按键事件中datagridview中的数值

silverlight - 当用户使用 MVVM 按下 ENTER 时,如何模拟 Silverlight 中的 TAB 键按下?

javascript - Javascript 中变量的函数名称