我希望能够捕获双键按下(例如 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/

10-14 07:06