在jQuery中检测单个按键事件上的多个键是否可以结合使用按键的混合物来发射单个事件?$(document).keyup(function(e){
if (e.keyCode == 68 && e.keyCode == 69 && e.keyCode == 86) {
alert('oh hai');
}});我在Chrome中尝试过,但事件并未触发。叫我疯了,但我正在编写一个Chrome扩展程序,并希望将D+ E+ V键一起推送到隐藏的开发人员模式。
3 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
如果要检测的d,e和v按键均下跌的同时,你必须注意既keydown
和keyup
,并保持地图为down的那些的。当他们全部失败时,解雇你的活动。
例如:Live copy | 资源
var map = {68: false, 69: false, 86: false};$(document).keydown(function(e) { if (e.keyCode in map) { map[e.keyCode] = true; if (map[68] && map[69] && map[86]) { // FIRE EVENT } }}).keyup(function(e) { if (e.keyCode in map) { map[e.keyCode] = false; }});
我假设你不关心他们被压下的顺序(因为这可能是一种痛苦,可靠地按下),只要他们在某个时刻同时处于同一时间。
繁花不似锦
TA贡献1851条经验 获得超4个赞
与Vega相似......但更简单
var down = {};$(document).keydown(function(e) { down[e.keyCode] = true;}).keyup(function(e) { if (down[68] && down[69] && down[86]) { alert('oh hai'); } down[e.keyCode] = false;});
梦里花落0921
TA贡献1772条经验 获得超6个赞
也许更简单的组合键会更容易?
Shift + Alt + D怎么样?(您可能不应该使用Control键,因为大多数浏览器已经以某种方式解释Ctrl + D)
这个代码是这样的:
if(e.shiftKey && e.altKey && e.keyCode == 68){ alert('l33t!');}
添加回答
举报
0/150
提交
取消