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

如果我按住左键的时间过长,电话会不断来电,而且(不会停止)我正在寻找的是延迟,或者只是在按下键时打一个电话(或者可能在释放键时立即停止)但我不确定如何。有关解决方案的任何建议?

4

2 回答 2

1

您可以将keydown事件更改为keyup仅在您停止按下按钮时才会触发。那会有帮助吗?

您可能还会发现此线程很有帮助: Abort Ajax requests using jQuery

我做了一个例子:http: //jsfiddle.net/kdDwd/2/

于 2012-06-13T13:17:34.400 回答
0

限制每次调用,你应该使用去抖动模式 - 这是关于为此编写插件的人的文章 - http://habrahabr.ru/post/60957/(它是俄语,希望谷歌翻译有帮助)

于 2012-06-13T13:24:30.063 回答