1

A-> B-> Cキーが連続して(互いに)押された場合のように、空白のhtmlページでキープレスを記録する方法を知りたいのですが、divを表示するか、ユーザーをリダイレクトします。また、ユーザーが A->B-> を押して C を押していない場合は、配列をリセットして、目的のアクションをトリガーするためにユーザーが (最初から) もう一度入力する必要があるようにします。

4

2 に答える 2

0

大まかな例

    var checkArray = [],
    error = 'Enter the right combination !!',
    success = 'Success !!',
    $div = $('#div'),
    timer = 1000,
    timeout;

$(document).on('keyup', function (e) {
    if(timeout) clearTimeout(timeout);
    var keyPressed = e.keyCode;
    (keyPressed > 64 && keyPressed < 68) ? checkArray.push(keyPressed) 
                                         : checkArray = [];
    console.log(checkArray.join('-'));
    if (checkArray && checkArray.length === 3) {
        if (checkArray[0] === 65 && checkArray[1] === 66 
                                 && checkArray[2] === 67) {
            $div.text(success).addClass('a');
            timer = 2000;
        }
    } else {
        $div.text(error).removeClass('a');
    }
    timeout = setTimeout(reset, timer);
});

function reset() {
    timer =1000;
    checkArray = [];
    $div.text(error).removeClass('a');
}

フィドルをチェック

于 2013-05-23T01:06:06.177 に答える