为什么加载bootstrap.js两次导致错误?

时间:2014-09-23 13:19:15

标签: javascript jquery twitter-bootstrap

我使用summernote作为我的网络在线编辑器。但是编辑器的某些部分(带引导下拉类的按钮)并不起作用。我终于发现加载jquery.js和bootstrap.js两次是问题(该页面包含header.php已经加载了两个js文件)。   所以我对错误感到困惑。如果js文件多次加载而其他一些js文件依赖它会发生什么?为什么jquery.js,jquery-ui.js和bootstrap.js在并行下载时会按顺序加载?

1 个答案:

答案 0 :(得分:1)

好问题。发生这种情况的原因是因为您正在使用的编辑器已经包含这两个文件的加载库。当你添加它们时发生的事情是它们覆盖了预先加载的第一个文件;重置窗口中的几个关键变量。由于它们被重置,使编辑器正常工作的事情失败,导致多米诺骨牌效应并导致程序崩溃。

编辑:我也在阅读更多关于这个主题的内容,因为它对我很有意思。在某些情况下,将多个版本的jQuery加载到文档中。例如,如果有一组函数从一个版本折旧到下一个版本,并且您发现它们很有用,这是拥有两个文件的正当理由。在那种情况下,你会想要从一个库到另一个库使用noConflict,以保持脚本内联,而不是让它们互相混淆,下面是一个快速参考示例:

<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
    $.noConflict();
    // Code that uses other library's $ can follow here.
</script>

另外,如果您想了解更多有关noConflict()功能的信息,请参阅以下链接:

http://api.jquery.com/jquery.noconflict/

为了总结一切,我会避免使用完全相同版本的多个库。另外为了帮助您将来避免这种情况,如果您刚开始并且只使用javascript,html和css,我会推荐一个文本编辑器。这就是你知道你正在使用的环境是什么,它可以让你完全控制。这是一个好的链接:

Sublime Text:http://www.sublimetext.com/