我想模拟按下键的GMail / Twitter键盘快捷键,然后用另一个键在jQuery中的某个地方导航。
例如, G 然后 H 在GMail中转为“Home”。 Twitter还有 G 然后 H 和其他“组合”快捷方式。
是否有一个模拟此行为的jQuery插件?
答案 0 :(得分:8)
我上周刚刚发布了一个名为mousetrap的库,内置了这个功能。查看http://craig.is/killing/mice
你可以做到
Mousetrap.bind('g h', function() {
console.log('go home!');
});
答案 1 :(得分:1)
不确定插件,但是你可以通过保留一个密钥队列并在每个mouseup上处理该队列来实现这一目的。
即。类似的东西:
var myKeyQueue = [];
$(document).keydown(function(e) {
var code e.charCode != 0 ? e.charCode : e.keyCode;
myKeyQueue.push(code);
});
$(document).keyup(function(e) {
processKeyQueue();
});
你的processKeyQueue函数将是:
function processKeyQueue() {
// check if the Q contains any actionable key-combo, if so do it!
/*
if(myKeyQueue.length == 2) {
if(String.fromCharCode(myKeyQueue[0]) == 'G' && String.fromCharCode(myKeyQueue[0]) == 'H') {
// you code here ...
}
}
*/
if(myKeyQueue.length >= 2) {
myKeyQueue = []; // remove all keys in Q
}
}
答案 2 :(得分:0)
看看这个Doing key combos with jQuery / JavaScript我认为它会回答你的问题。另外this guy编写了他自己的非常小的插件来处理CTRL + [Any Key]监听器,这样他就可以使用CTRL + S这样的快捷方式来调用保存活动文档的函数,它可能会被修改以供你使用
答案 3 :(得分:0)
我认为:http://www.openjs.com/scripts/events/keyboard_shortcuts/ 可能会以某种方式帮助您添加自己的快捷方式