$(...)。popover不是一个函数

时间:2015-04-28 05:14:15

标签: javascript jquery twitter-bootstrap

我在这里看过很多关于这个问题的帖子,但似乎都没有解决我的问题。

我已按正确的顺序导入了jQuery和Bootstrap js文件。像引导板这样的东西对我来说非常好。

我的脚本导入如下:

var foo = {bar: 'bar'};
delete foo.bar;
console.log('bar' in foo); // Logs false, because bar was deleted from foo.

然而,当我尝试

   <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
   <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
   <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">

我在Chrome控制台中收到以下消息:

 $('[data-toggle="popover"]').popover();

起初我认为也许popover没有包含在CDN的副本中,所以我继续下载了一个包含所有插件的本地副本:

 Uncaught TypeError: $(...).popover is not a function

并得到相同的错误消息(将脚本标记重新指向本地js文件)。

搜索“popover”bootstrap.min.js文件:

http://getbootstrap.com/customize/

显示文件中包含popover。

6 个答案:

答案 0 :(得分:47)

由于您已声明已正确包含jQuery和其他库,因此可能的情况是页面中可能存在多个jQuery实例。

因此,基于所使用的服务器技术,搜索jQuery的重复版本,如果有任何删除它们(如果不需要,则必须考虑noConflict()使用)。

如果出现重复的jQuery实例,问题是插件所附加的jQuery版本可能与您访问的jQuery版本不同,此时插件将无法使用该插件。

答案 1 :(得分:4)

包含bootstrap.js和jquery.js的顺序很重要。在bootstrap.js之前加入jquery.js

答案 2 :(得分:0)

有同样的问题并检查了jquery版本。转到v1.12帮助我

答案 3 :(得分:0)

对我有用的是调用 $.noConflict() 返回 $ 的控制权。 那是因为其他一些 JavaScript 库使用 $ 作为函数或变量名,就像 jQuery 一样。在 jQuery 初始化期间,保存了一些 $ 的旧引用。 noConflict() 恢复它们。

$noConflict();
jQuery(document).ready(function ($) {
$("#id").popover('hide');
});

答案 4 :(得分:-1)

这是由于不同版本的引导程序而发生的 在这种情况下,使用与引导程序相同版本的脚本

在其他情况下不推荐使用 jquery。 insted 使用 Advance Css Js

这也会发生,因为最新的引导程序没有

答案 5 :(得分:-1)

几个小时后,我发现我忘记将 bootstrap.js 文件附加到我的页面;)