How to trap double key press in javascript?

前端 未结 3 1938
甜味超标
甜味超标 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:44

    I know is too late to answer but here goes how I have implemented that:

    let pressed;
    let lastPressed;
    let isDoublePress;
    
    const handleDoublePresss = key => {
        console.log(key.key, 'pressed two times');
    }
    
    const timeOut = () => setTimeout(() => isDoublePress = false, 500);
    
    const keyPress = key => {
        pressed = key.keyCode;
    
        if (isDoublePress && pressed === lastPressed) {
            isDoublePress = false;
            handleDoublePresss(key);
        } else {
            isDoublePress = true;
            timeOut();
        }
    
        lastPressed = pressed;
    }
    
    window.onkeyup = key => keyPress(key);
    

提交回复
热议问题