Typeahead + Jquery + TypeError:$(...)。typeahead不是函数+ .mixin(Typeahead.prototype

时间:2014-10-09 19:12:42

标签: javascript jquery html angularjs bootstrap-typeahead

在我的html页面中,我正在尝试添加Typeahead以进行自动填充,但我无法解决与 TypeError ReferenceError 相关的一个问题。

我在CodePen上尝试了一个样本并且运行正常。 Click Here

但在实际页面中,我收到了这些错误。

错误

ReferenceError: _ is not defined
.mixin(Typeahead.prototype, {

typeahe...?body=1 (line 87, col 2)
TypeError: $(...).typeahead is not a function

HTML代码

var subjects = ['PHP', 'MySQL', 'SQL', 'PostgreSQL', 'HTML', 'CSS', 'HTML5'];
$('#search').typeahead({source: subjects})

JS文件的安排

<%= javascript_include_tag 'jquery.js' %>
<%= javascript_include_tag 'angular.min.js' %>
<%= javascript_include_tag 'jquery-ui.min.js' %>
<%= javascript_include_tag 'bootstrap.3.2.js' %>
<%= javascript_include_tag 'typeahead.js' %>

<%= javascript_include_tag 'jquery.backstretch.min.js' %>
<%= javascript_include_tag 'jquery.scrollTo.min.js' %>

请建议解决此问题。我在google和stackoverflow上看到了一些解决方案,但没有任何工作。 enter image description here

请查看更新后的答案区域

1 个答案:

答案 0 :(得分:2)

非常非常愚蠢的错误 - 可能是我错了......

我发现了我添加的Bootstrap Javascript JS文件的问题。

在示例代码中,我添加了bootstrap 2.3.2版本并且工作正常。

twitter-bootstrap/2.3.2/js/bootstrap.min.js

但是在我的html页面中,我添加了bootstrap 3.2 js版本并按照我的假设创建了冲突。

<%= javascript_include_tag 'bootstrap.3.2.js' %>

现在我刚用2.3.2版本替换了3.2版本,工作正常。