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

Uncaught Error: Bootstrap's JavaScript requires jQuery

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


当前回答

你应该首先加载jQuery,因为Bootstrap使用jQuery特性。是这样的:

<!doctype html>
<html>
    <head>
        <link type="text/css" rel="stylesheet" src="css/animate.css">
        <link type="text/css" rel="stylesheet" src="css/bootstrap-theme.min.css">
        <link type="text/css" rel="stylesheet" src="css/bootstrap.min.css">
        <link type="text/css" rel="stylesheet" href="css/custom.css">
        
<!--   Shuffle your scripts HERE  -->
        <script src="js/jquery-1.11.0.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/wow.min.js"></script>
<!--   End  -->   

        <title>pyMeLy Interface</title>
    </head>
    <body>
        <p class="title1"><strong>pyMeLy</strong></p>
        <p class="title2"><em> A stylish way to view your media</em></p>
        <div style="text-align:center;">
            <button type="button" class="btn btn-primary">Movies</button>
            <button type="button" class="btn btn-primary btn-lg">Large button</button>
        </div>
    </body>
</html>

其他回答

如果你在一个只有浏览器的环境中,使用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,这样你就不需要这个解决方法了。

试试这个

改变JS文件的顺序。它应该如下所示。

<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/wow.min.js"></script>

在添加bootstrap js文件之前,需要先添加JQuery js,因为bootstrap使用jqueries函数。所以请确保首先加载jquery js,然后引导js文件。

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

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

在解决了这个问题之后,我采取了三个步骤:

使用jQuery 1.9.0到3.0.0之间的任何版本 在声明Bootstrap文件之前声明jQuery文件 将这两个脚本文件声明在<body></body>标签的底部,而不是在<head></head>。 这些方法对我来说很有效,但是基于你所使用的浏览器可能会有不同的行为。

在我看来,这个解决方案真的很愚蠢,也很奇怪。

下面的代码由_Layout预填充。cshtml文件。(不是我写的)

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>

但是,当我在Scripts文件夹中验证时,jquery-1.10.2.min.js甚至不可用。因此,替换如下所示的代码,其中jquery-1.9.1.min.js是一个现有文件:

<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>