我试图使用Bootstrap使一个程序的接口。我添加了jQuery 1.11.0到<head>标签,并认为这是,但当我在浏览器中启动网页jQuery报告一个错误:

Uncaught Error: Bootstrap's JavaScript requires jQuery

我已经尝试使用jQuery 1.9.0,我已经尝试在几个cdn上托管副本,但我不能让它工作。有人能指出我做错了什么吗?


当前回答

如果代码看起来不错,请验证jQuery是否成功加载到服务器。在我的例子中,jQuery文件是由我的IDE发布到服务器的,但是web服务器只有一个0 KB的文件存根。由于没有内容,服务器无法将文件提供给浏览器。

在重新发布文件并验证服务器实际上接收了整个文件后,我的网页不再向我提供错误。

其他回答

以上的方法我几乎都试过了。

最后通过包含

script src="{%static 'App/js/jquery.js' %}"

在base.html中加载staticfiles后,即{% load staticfiles %}

如果代码看起来不错,请验证jQuery是否成功加载到服务器。在我的例子中,jQuery文件是由我的IDE发布到服务器的,但是web服务器只有一个0 KB的文件存根。由于没有内容,服务器无法将文件提供给浏览器。

在重新发布文件并验证服务器实际上接收了整个文件后,我的网页不再向我提供错误。

如果你在一个只有浏览器的环境中,使用SridharR的解决方案。

如果你是在Node/CommonJS +浏览器环境(例如electron, Node -webkit等);这个错误的原因是jQuery的导出逻辑首先检查模块,而不是窗口:

if (typeof module === "object" && typeof module.exports === "object") {
    // CommonJS/Node
} else {
    // window
}

注意,它通过module导出自己。这里是出口;所以jQuery和$没有被分配给window。

所以要解决这个问题,<script src="path/to/jquery.js"></script>;

你自己用require语句赋值就可以了:

<script>
    window.jQuery = window.$ = require('jquery');
</script>

注意:如果你的电子应用程序不需要nodeIntegration,将其设置为false,这样你就不需要这个解决方法了。

在添加bootstrap-之前,需要先添加JQuery

<!-- JQuery Core JavaScript -->
<script src="lib/js/jquery.min.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="lib/js/bootstrap.min.js"></script>

你为JAVASCRIPT和BOOTSTRAP提供了错误的顺序

按照惯例,bootstrap必须遵循jquery文件定义

<!-- JQuery Core JavaScript -->
<script src="lib/js/jquery.min.js"></script>
<script src="lib/js/jquery-ui.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="lib/js/bootstrap.min.js"></script>