键盘组合快捷键



"Keymaster是一个简单的微型库,用于在web应用程序中定义和调度键盘快捷键。"

有没有一个好的方法来进行多键键盘组合。例如,在Gmail中,按g,然后紧跟i

Keymaster没有依赖项。我很想一直这样。。。谢谢

我不知道keymaster,但您可以通过按键事件处理程序中的计时器(setTimeout)轻松实现这一点。不要在按键后立即采取行动,而是将按键添加到缓冲区,然后等待第二个按键,直到超时为止。

在代码中,应该是这样的:

var keyBuffer = [],
    timer;
document.addEventListener('keypress', function(e) {
    // Add current key to buffer
    keyBuffer.push(e.which);
    // Cancel previous timer
    clearTimeout(timer);
    // Set new timer
    timer = setTimeout(function() {
        // Pass a *copy* of the buffer into another function
        reactOnKey(keyBuffer.slice(0));
        // Clear buffer
        keyBuffer.length = 0;
    }, 1000)
}, false);

function reactOnKey(buffer) {
   console.log(buffer);   
}

http://jsfiddle.net/pGdsR/

最新更新