Twitter Typeahead:当ajax获取新关键字的结果时,建议列表消失了

时间:2017-08-01 11:04:19

标签: php jquery ajax twitter-typeahead

我正在使用Twitter Typeahead(v0.11.1)。我在文本框中输入每个字母时配置了一个ajax调用来获取建议列表。

在输入每个字符时,ajax调用会被发送并带来结果。如果在文本框中连续输入,则先前的ajax调用将被中止,并且在输入的最后一个字符的暂停时发送新的ajax调用。

所以,虽然这个过程如果在两个字符后找到一些结果并暂停,那么它会显示建议列表。现在,如果继续输入则退出列表就会消失。

我想保留每个ajax调用的建议列表,直到用户没有从中选择一个项目。

以下是使用的代码:

var typeahead_pre_written_xhr = null;
var helper_typeahead = $( "#input-box" ).typeahead({
  highlight: true,
  minLength: 0
},
{
  name: "Search Suggestions",
  display: ["title"],
  templates: {
    empty: function () {
        return '<div class="tt-suggestion tt-selectable">No matching helper comment found</div>';
    }
  },
  source: function (query, processSync, processAsync) {

    if( typeahead_pre_written_xhr !=  null ) {
      typeahead_pre_written_xhr.abort();
      typeahead_pre_written_xhr = null;
    }

    action_url = "suggestion_list";
    return typeahead_pre_written_xhr = $.ajax({ cache: false
      , url: action_url + query
      , type: 'POST'
      , data: { 'search': query }
      , dataType: 'json'
      , success: function (data)
      {
        return processAsync(data.res);
      }
    });
  }
}).bind("typeahead:selected", function(evt, item) {
   // do some stuff
});

0 个答案:

没有答案