我无法让 jQuery QueryBuilder 在我的 index.html 中工作

I cannot get jQuery QueryBuilder to work in my index.html

我的项目需要使用 jQuery 的 QueryBuilder 插件,因此我下载了概述网页中指定的所需文件 http://mistic100.github.io/jQuery-QueryBuilder/ 然后我使用下面的代码设置了一个简单的页面,但是当我 运行 时没有任何反应。 我错过了什么。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>jQuery QueryBuilder</title>

    <script src="Scripts/doT.js"></script>
    <script src="Scripts/jQuery.extendext.js"></script>
    <script src="Scripts/query-builder.js"></script>
    <script src="Scripts/moment.js"></script>
    <script src="Scripts/bootstrap.js"></script>
    <script src="Scripts/jquery-2.1.4.js"></script>
</head>
<body>
    <div id="builder"></div>

    <script>
        var myFilters = [{
            id: 'column1',
            label: 'Column 1',
            type: 'string'
        }, {
            id: 'column2',
            label: 'Column 2',
            type: 'double'
        }, {
            id: 'column3',
            label: 'Column 3',
            type: 'boolean'
        }];
        $('#builder').queryBuilder({
            filters: myFilters
        });
    </script>
</body>
</html>

我的项目是这样的

我以前从未使用过这个插件,但如果它是一个 JQuery 插件,则需要首先加载 JQuery 库。由于浏览器会在继续之前停止并读取整个库,因此请确保 JQuery 库首先出现。这样,库会在尝试加载插件之前加载。希望对你有用!!!

我认为您需要在插件之前加载 Jquery。

您需要首先包含 Bootstrap、jQuery 和依赖项,因此您必须使用:

<script src="Scripts/bootstrap.js"></script>
<script src="Scripts/jquery-2.1.4.js"></script>
<script src="Scripts/jQuery.extendext.js"></script>
<script src="Scripts/doT.js"></script>
<script src="Scripts/moment.js"></script>
<script src="Scripts/query-builder.js"></script>

也就是说 - 如果您使用独立版本:

<script src="Scripts/query-builder.standalone.js"></script>

那么你不必包括:

<script src="Scripts/jQuery.extendext.js"></script>
<script src="Scripts/doT.js"></script>

因为这两个依赖项包含在独立版本中。

只需确保您已将独立版本上传到您的服务器 ;)

顺便说一句 - 您最好使用这些脚本的缩小版本来减少页面加载时间。

这是另一种工作方式。

  1. 将 jQuery-QueryBuilder\dist\css 中的所有 CSS 文件包含到 VS Content 文件夹。
  2. 将 Bootstrap 3+ 版本 css 文件添加到 VS Content 文件夹中。
  3. 添加doT.js、jQuery.extendext.js、moment.js、jquery-3.1.1.min.js和query-builder.standalone.js VS 脚本文件夹。
  4. 在_layout.cshtml页面,添加以下路径;

    <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    
    <script src="~/Scripts/doT.js"></script>
    <script src="~/Scripts/jQuery.extendext.js"></script>   
    <script src="~/Scripts/moment.js"></script>
    <link href="~/Content/bootstrap.min.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-3.1.1.min.js"></script>
    <link href="~/Content/query-builder.default.css" rel="stylesheet" />
    <script src="~/Scripts/query-builder.standalone.js"></script>
    

您的查看页面如下所示,

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<body>
    <div id="builder"></div>

    <script>
        var myFilters = [{
            id: 'column1',
            label: 'Column 1',
            type: 'string'
        }, {
            id: 'column2',
            label: 'Column 2',
            type: 'double'
        }, {
            id: 'column3',
            label: 'Column 3',
            type: 'boolean'
        }];
        $('#builder').queryBuilder({
            filters: myFilters
        });
    </script>
</body>

你的结果应该是,