How to trap double key press in javascript?

前端 未结 3 1942
甜味超标
甜味超标 2020-12-16 00:48

I would like to be able to trap the double key press (for the Char T for example) in order to do some special processing.I would like the key presses to happen fast enough t

3条回答
  •  温柔的废话
    2020-12-16 01:50

    When the key(s) are hit, make a note of the time. Then compare it with the time you noted the last time they key(s) were hit.

    If the difference is within your threshold, consider it a double. Otherwise, don't. Rough example:

    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;
       }
    }
    

提交回复
热议问题