rem*_*rsh 42 javascript jquery keypress jquery-events
是否可以结合使用按键的混合物来发射单个事件?
$(document).keyup(function(e){
if (e.keyCode == 68 && e.keyCode == 69 && e.keyCode == 86) {
alert('oh hai');
}
});
Run Code Online (Sandbox Code Playgroud)
我在Chrome中尝试过,但事件并未触发.
叫我疯了,但我正在编写一个Chrome扩展程序,并希望将D+ E+ V键一起推送到隐藏的开发人员模式.
T.J*_*der 73
如果要检测的d,e和v按键均下跌的同时,你必须注意既keydown和keyup,并保持地图为down的那些的.当他们全部失败时,解雇你的活动.
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;
}
});
Run Code Online (Sandbox Code Playgroud)
我假设你不关心他们被压下的顺序(因为这可能是一种痛苦,可靠地按下),只要他们在某个时刻同时处于同一时间.
Par*_*kar 18
与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;
});?
Run Code Online (Sandbox Code Playgroud)
也许更简单的组合键会更容易?
Shift + Alt + D怎么样?(您可能不应该使用Control键,因为大多数浏览器已经以某种方式解释Ctrl + D)
这个代码是这样的:
if(e.shiftKey && e.altKey && e.keyCode == 68)
{
alert('l33t!');
}
Run Code Online (Sandbox Code Playgroud)
小智 6
对于想要避免使用 Jquery 的人,我从TJ Crowder那里得到了纯 javascript 的回答。
//A W S D simultaneously
var map = {65: false, 87: false, 83: false, 68: false};
document.body.addEventListener('keydown', function (e) {
var e = e || event; //to deal with old IE
if (e.keyCode in map) {
map[e.keyCode] = true;
if (map[65] && map[87]) {
console.log('up left');
}else if (map[83] && map[68]) {
console.log('down right');
}else if (map[87] && map[68]) {
console.log('up right');
}else if (map[83] && map[65]) {
console.log('down left');
}
}
});
document.body.addEventListener('keyup', function (e) {
if (e.keyCode in map) {
map[e.keyCode] = false;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54441 次 |
| 最近记录: |