javascript - 通过使用 SetTimeOut 包装它来避免多次自动完成调用

标签 javascript jquery autocomplete settimeout

这是我的问题:使用自动完成 jQuery 插件,我想在用户通过围绕

$('#query1').autocomplete({
                    serviceUrl:'/actions/autocomplete?population=salon',
                    minChars:3, 
                    maxHeight:300,
                    width:200,
                    clearCache:true,
                    onSelect: function(suggestions,data){ $(".btn1").attr("href", "${pageContext.request.contextPath}/actions/espaceClients?participantId=" + data) }
                });

用类似的东西

                var search = false;
            $('#query1, #query2, #query3').keyup(function(){
                if (!search){
                    search = true;
                }
                if (search) {
                    search = false;
                    autocompleteThem();
                }
            });

你可以看到,上面的代码很愚蠢,但它有点显示了我正在尝试做的事情。

简单来说,如果用户在一段时间内没有输入任何其他内容,那么您可以调用自动完成。

我希望我说的很清楚,因为我的脑子一团糟...

最佳答案

使用 deferRequestBy option在那个插件上,像这样:

$('#query1').autocomplete({
                serviceUrl:'/actions/autocomplete?population=salon',
                minChars:3, 
                maxHeight:300,
                width:200,
                clearCache:true,
                deferRequestBy: 200, //200ms
                onSelect: function(suggestions,data){ $(".btn1").attr("href", "${pageContext.request.contextPath}/actions/espaceClients?participantId=" + data) }
            });

关于javascript - 通过使用 SetTimeOut 包装它来避免多次自动完成调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757857/

相关文章:

javascript - 将 javascript 对象列表从 QML 发送到 C++

jquery - ajax发送数据到 Controller

javascript - 验证以前不可见的字段

jquery - jQuery 1.4.2 与 Closure 编译器兼容吗?

ios - 限制 Google AutoComplete API 仅显示附近的位置

jQuery UI 自动完成宽度设置不正确

mysql - MySQL 命令行客户端中的自动完成

javascript - MixedContent 当我通过 ajax 加载 https 页面时,但浏览器仍然认为它是 http

javascript - 尝试在 MAP 内运行函数

javascript - 数据库中的字符串无法调用 Javascript