【问题标题】:Jquery autocomplete:Load the source just onceJquery自动完成:只加载一次源
【发布时间】:2016-08-14 23:17:33
【问题描述】:

我正在尝试使用 jquery 自动完成功能,但我希望只加载一次源代码。 我不想每次输入字母时都调用 ajax 动作类。我也不想使用缓存,因为它是浏览器级别的缓存。所以基本上我需要它只想加载我的列表一次并使用自动完成功能。这可能吗?任何想法都会非常有帮助..提前感谢

【问题讨论】:

    标签: jquery ajax autocomplete


    【解决方案1】:

    您可以延迟通话。 看: Javascript onkeyup delayed function call

    var _timer = 0;
    function DelayedCallMe(num) {
        if (_timer)
            window.clearTimeout(_timer);
        _timer = window.setTimeout(function() {
            callMe(num);
        }, 500);
    }
    

    然后调用 onkeyup 中的函数:

    <input type="text" onkeyup="DelayedCallMe(200);"/>
    

    【讨论】:

      【解决方案2】:

      进行一次 ajax 调用并在成功时构建自动完成功能:

      $.getJSON({
          url: 'remote_url/',
          type: 'GET',
          success: function (data) {
            $('#autocomplete').autocomplete({
              lookup: data,
              onSelect: function (suggestion) {
                console.log(suggestion)
              }
            });
          },
          error: function (res) {
            console.log(res)
          }
        });

      【讨论】:

        猜你喜欢
        • 2016-12-15
        • 1970-01-01
        • 2020-07-07
        • 1970-01-01
        • 1970-01-01
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多