"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/