Typeahead.js 没有显示建议

Typeahead.js not showing suggestions

我正在尝试为输入框提前输入。我为此使用 typeahead.js。我正在使用相同的代码来学习此功能。虽然我没有收到任何错误,但它没有显示建议。我还包含了所有需要的脚本,如下所示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script>  
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
<script src="the-basics.js"></script>

Html如下:

<div class="container">
<div id="the-basics">
  <input class="typeahead" type="text" placeholder="States of USA">
</div>
  </div>

js如下:

var substringMatcher = function(strs) {
console.log('strs', strs);
return function findMatches(q, cb) {
  console.log('q', q);
  var matches, substringRegex;

  // an array that will be populated with substring matches
  matches = [];
  console.log('matches', matches);

  // regex used to determine if a string contains the substring `q`
  substrRegex = new RegExp(q, 'i');

  // iterate through the pool of strings and for any string that
  // contains the substring `q`, add it to the `matches` array
  $.each(strs, function(i, str) {
    if (substrRegex.test(str)) {
      matches.push(str);
    }
  });
  
  console.log('matches', matches);

  cb(matches);
};


};
  
  var states = ['Alabama', 'Alaska', 'Arizona', 'California',
    'Colorado', 'Connecticut', 'Delaware', 'Florida'
  ];
  
  $('#the-basics .typeahead').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
  },
  {
    name: 'states',
    source: substringMatcher(states)
  });

请帮我解决这个问题。

PS:我尝试了 Whosebug 上的不同解决方案,例如 ,但它对我不起作用。

const states = [
  "Alabama",
  "Alaska",
  "Arizona",
  "California",
  "Colorado",
  "Connecticut",
  "Delaware",
  "Florida"
];

$("#the-basics .typeahead").typeahead({
  hint: true,
  highlight: true,
  minLength: 1,
  name: "states",
  source: states
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />


<div class="container">
  <div id="the-basics">
    <input class="typeahead" type="text" placeholder="States of USA" autocomplete="off">
  </div>
</div>