我需要从键盘上获取多个键码,例如按a + q并发送其键码,或者按a再按q并发送其键码。
以html
var tamp;
$(document).keyup(function(event){
tamp=event.keyCode;
}).keypress(function(event){
if(event.keyCode === 68) //d- bot
socket.emit('keyPress',{two:68,one:tamp});
else if(event.keyCode === 83) //s -mid
socket.emit('keyPress',{two:83,one:tamp});
else if(event.keyCode === 65) //a -top
socket.emit('keyPress',{two:65,one:tamp});
})
.js
socket.on('keyPress',function(data){
console.log(data.one+" and "+data.two);
});
我进入控制台日志“ 0和65”或“未定义和65”
编辑: 我不想像这样的代码cuz那样解决它,如果我这样做,将会有那么多的else(9 if asd,qwe组合(q + a,q + s,q + d ,, w + a, w + s,w + d ,, e + a,e + s,e + d)) 有更好的办法吗?还是我必须那样做
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;
}
});