使用jquery检测键盘中输入的键的模式

时间:2015-01-16 05:54:52

标签: javascript jquery

我希望在使用键盘在网站上按密码时将访问者重定向到某个页面。键盘代码是"向上向下,左下右下方"。我写了代码。但它没有完全发挥作用。因为它只检查按下向上,向下,向左和向右箭头键。不是特定的模式。以下是代码

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')
                }
            }
        }
        );

http://jsfiddle.net/stargijo/7s401Lbp/

2 个答案:

答案 0 :(得分:0)

兄弟,你得到这种类型的输出,因为你在" Map"中添加了相同的键和值对,你提供了" 38:false,38:false"这意味着提供两次相同的键和值,但只能提供一种类型的一个键值。这意味着只有四个键值对存在,而不是8,这就是为什么它允许用户在单个上下左右后。

答案 1 :(得分:0)

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');
        }
    }
});