0
    $(document).keydown(function(e){
        if (e.keyCode == 37) { 
            move("West");
            return false;
        }
        if (e.keyCode == 38) { 
            move("North");
            return false;
        }
        if (e.keyCode == 39) { 
            move("East");
            return false;
        }
        if (e.keyCode == 40) { 
            move("South");
            return false;
        }
    });

        function move(newDirection)
        {
            var direction = newDirection;

            $.ajax({
                type: "POST",
                url: "ajax/map.php",
                data: { direction: direction },
                success: function(data) {
                    $('#content').html(data);
                }
            });
        }

左キーを長押ししすぎると、電話がかかってきたり来たりし続け、(止まることはありません) 私が探しているのは、少し遅延させるか、キーが押されたときに単に 1 つの電話をかけることです。 (または、キーを離すとすぐに停止する可能性があります)しかし、方法がわかりません。解決策に関する提案はありますか?

4

2 に答える 2

1

ボタンを押すのをやめたときにのみトリガーされるようにkeydownイベントを変更できます。keyupそれは役に立ちますか?

このスレッドも役立つかもしれません: Abort Ajax requests using jQuery

例を作成しました: http://jsfiddle.net/kdDwd/2/

于 2012-06-13T13:17:34.400 に答える
0

時間ごとの呼び出しを制限するには、デバウンスパターンを使用する必要があります。これについてプラグインを書いている人の記事はこちらです。

于 2012-06-13T13:24:30.063 に答える