ajax - 如何在 jQuery 中发出 keyup 事件 ajax 请求之前保持几毫秒

标签 ajax jquery google-maps-api-3

我正在使用 Google Maps API 制作一个小型应用程序。您可以在文本框中输入 pin,然后将触发 AJAX 调用以从我的数据库获取坐标。我正在调用 keyup 事件上的操作,并且在文本框中出现 2 个字符后。问题是我希望用户能够在我开始进行 AJAX 调用之前输入整个内容。我已将异步设置为 false,否则异步调用不会让我从 map 中删除标记并在标记全部消失之前引入更多标记。

    $('input[name="location"]').keyup(function(){
        if($(this).val().length > 1){
            $(this).css('background', '#fff url("/images/indicator.gif") no-repeat center right');
            deleteOverlays();
            $.ajax({
                dataType: "json",
                url: "locAjax.php",
                data: ({term : this.value}),
                async: false,
                type: "GET",
                success: function(data) {
                    setMarkers(map, data);
                }
            });
            $(this).css('background', '#fff');
        }
    });

我可以在调用之前使用某种超时或其他方式来给用户足够的时间来编写整个内容吗?或至少一半。

请告诉我。

非常感谢。

最佳答案

var timer;

$('input[name="location"]').keyup(function(){
    clearTimeout(timer);
    timer = setTimeout(function(){
    if($(this).val().length > 1){
        $(this).css('background', '#fff url("/images/indicator.gif") no-repeat center right');
        deleteOverlays();
        $.ajax({
            dataType: "json",
            url: "locAjax.php",
            data: ({term : this.value}),
            async: false,
            type: "GET",
            success: function(data) {
                setMarkers(map, data);
            }
        });
        $(this).css('background', '#fff');
    }
    }, 5000 ); // <--- do ajax call after 5 seconds of the last keyup character...
});

关于ajax - 如何在 jQuery 中发出 keyup 事件 ajax 请求之前保持几毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665366/

相关文章:

javascript - 获取“未捕获的类型错误 : Cannot read property 'value' of null"on Google Places API

php - 选择不同的经度和纬度值并找到它们的中值

jquery - jQuery AJAX 拉取后更新 URL

javascript - 在模板中加载相同的 Angular Controller 两次,但没有第二次 AJAX 调用?

javascript - POST 数据在浏览器和 PHP 之间被 chop

javascript - 添加事件监听器 对于按下的任何字母键?

javascript - jQuery - 通过输入或 td 选择复选框时停止传播

javascript - 从 ajax 返回的 html 提交表单

php - AJAX 响应类型。我无法使用 JSON。还有其他选择吗?

java - 如何在谷歌地图静态 API 中的标记上显示标签(字符串)?