Javascript 使用jquery检测键盘中输入的按键模式
当访问者使用键盘在网站中按下密码时,我想将他们重定向到一个页面。键盘代码是“上下左右”。我已经写了代码。但它并没有完全发挥作用。因为它只检查是否按下了向上、向下、向左和向右箭头键。不是特定的模式。下面是代码Javascript 使用jquery检测键盘中输入的按键模式,javascript,jquery,Javascript,Jquery,当访问者使用键盘在网站中按下密码时,我想将他们重定向到一个页面。键盘代码是“上下左右”。我已经写了代码。但它并没有完全发挥作用。因为它只检查是否按下了向上、向下、向左和向右箭头键。不是特定的模式。下面是代码 var map = {38: false, 38: false, 40: false, 40: false, 37: false, 39: false, 37: false, 39: false}; $(document).keyup(function(e)
var map = {38: false, 38: false, 40: false, 40: false, 37: false, 39: false, 37: false, 39: false};
$(document).keyup(function(e)
{
if (e.keyCode in map) {
map[e.keyCode] = true;
if (map[38] && map[38] && map[40] && map[40] && map[37] && map[39] && map[37] && map[39]) {
alert('You have pressed the patten up up down downn left right left right')
}
}
}
);
兄弟,您得到这种类型的输出是因为您在“Map”中添加了相同的键值对,您提供了“38:false,38:false”。这意味着提供了两次相同的键值和值,但一种类型只能提供一个键值。这意味着只有四个键值对存在,而不是8,这就是为什么它允许用户在单上下左右后使用。你能帮我解决这个问题吗?另外,顺序不会保留在地图中等待几分钟,我正在尝试
var key = [38, 38, 40, 40, 37, 39, 37, 39],
pos = 0;
$(document).keyup(function(e) {
if (e.keyCode !== key[pos]) {
pos = 0;
} else {
++pos;
if (pos >= key.length) {
pos = 0;
alert('You have pressed the patten up up down downn left right left right');
}
}
});