类型错误:$(...).typeahead不是一个函数。

28

这是非常基础的代码。但我仍然遇到了问题。我认为我漏掉了某些东西,就像在Bootstrap网站上提到的那样。

"插件可以单独包含(尽管有些需要依赖项)或一次性全部包含。 bootstrap.js和bootstrap.min.js都包含一个单独文件中的所有插件。"

因此,我已经包含了boostrap.js,但仍然出现错误,还有其他依赖项吗?

以下是代码。

<!DOCTYPE html>
<html>
    <head>
        <title>Member</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/bootstrap.min.js"></script>
        <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    </head>
    <body>
<div class="well">  
<input type="text" class="span3" id="search" data-provide="typeahead" data-items="4" />  
</div>
<script>  
 var subjects = ['PHP', 'MySQL', 'SQL', 'PostgreSQL', 'HTML', 'CSS', 'HTML5', 'CSS3', 'JSON'];   
$('#search').typeahead({source: subjects})  
</script>
    </body>
</html>

问候

Aadam


忘了提到使用了Bootstrap 3.1和jQuery 1.10。 - Aadam
http://tatiyants.com/how-to-use-json-objects-with-twitter-bootstrap-typeahead/ - Vaibs_Cool
Typeahead 不再与 bootstrap 捆绑在一起。 - Matijs
2
在 Twitter Bootstrap 3 中,typeahead 插件已被删除。您需要手动添加 typeahead 脚本。 - Zudwa
添加了额外的插件后,一切都完美运行。谢谢大家。 - Aadam
4个回答

29
如果您看到“TypeError: $(...).typeahead is not a function”错误消息,这意味着在您使用的Bootstrap版本中未提供typeahead函数。 官方上已经从新的3.0版本中删除了typeahead,并在typeahead.js中单独提供。 您需要包含typeahead.js插件,即可解决该错误。

14
我已经下载了typeahead v0.11.1并将它包含在一个script标签中,但还是出现了$(...).typeahead不是一个函数的错误。有什么想法吗? - TheJKFever
1
下载链接为:https://twitter.github.io/typeahead.js/ - Patrick Simard

6

我面对了一个错误,如下所示: "TypeError: $(…).typeahead is not a function"

在您使用的当前版本的bootstrap中没有提供typeahead函数。

现在,在新版3.0中已经将 typeahead移除,并且现在可以在typeahead.js上获得。

因此,您需要在您的文件/项目中包含typeahead.js插件,然后您的错误就会被解决。所以请包含对typeahead函数的引用。

(下载最新的bootstrap3-typeahead.js或bootstrap3-typeahead.min.js。在jQuery和Bootstrap的JavaScript之后将其包含在您的源代码中。)

下载链接:

https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.js

查看帮助的快照

https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.min.js

查看快照以下载typehead.min.js


1
$('#search').typeahead({source: subjects}) 

应该是


$('#search').typeahead({local: subjects}) 

由于typeahead不再包含在最新版本的Bootstrap包中,因此您需要显式地下载并指向它。下载链接:typeahead.js 最新版本是2015年发布的,因此已经有几年没有更新了。

0

我很晚,但对我来说错误发生在我尝试包含一个被压缩的版本的typeahead时。使用原始/非压缩版本解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接