我在这里看过很多关于这个问题的帖子,但似乎都没有解决我的问题。
我已按正确的顺序导入了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。
答案 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 文件附加到我的页面;)