繁体   English   中英

Uncaught ReferenceError: jQuery is not defined Django jQuery CDN

[英]Uncaught ReferenceError: jQuery is not defined Django jQuery CDN

我正在构建一个 Django webapp 并想使用一个 JS 扩展来创建每周计划链接 我已将此扩展放在我的项目的静态目录中,并在我的 base.html 中导入了 jQuery 和扩展,如下所示:

        <!-- jquery -->
        <script src="https://code.jquery.com/jquery-3.3.1.min.js" defer></script>

        <!-- jQuery schedule display (includes css and js) -->
        <link rel="stylesheet" href="{% static 'Dynamic-Weekly-Scheduler-jQuery-Schedule/dist/jquery.schedule.css' %}">
        <script src="{% static 'Dynamic-Weekly-Scheduler-jQuery-Schedule/dist/jquery.schedule.js' %}"></script>

然而,当我尝试将数据传递到这个插件时:

    <script type="text/javascript">
    console.log({{schedule_data}})
    $("schedule").jqs({{schedule_data}})
    </script>

我在 jquery.schedule.js 中得到一个错误:

Uncaught ReferenceError: jQuery is not defined

指的是这个文件的结尾是:

$.fn[pluginName] = function (options) {
    var ret = false;
    var args = Array.prototype.slice.call(arguments);
    var loop = this.each(function () {
      if (!$.data(this, 'plugin_' + pluginName)) {
        $.data(this, 'plugin_' + pluginName, new Plugin(this, options));
      } else if ($.isFunction(Plugin.prototype[options])) {
        ret = $.data(this, 'plugin_' + pluginName)[options](args);
      }
    });

    if (ret) {
      return ret;
    }

    return loop;
  };
})(jQuery, window, document);

我究竟做错了什么? 我不应该使用 jQuery CDN 吗? 请注意,jQuery 未在 jquery.schedule.js 文档中的其他地方定义。 谢谢

在加载 CDN 时,您可能需要注意使用defer defer告诉浏览器等待所有其他内容加载完毕,因此在您的代码中,位于底部的<script>标记将首先开始运行。 您应该删除 jQuery CDN 中的defer标记,并在加载<script>时改为defer 这将确保您的 jQuery 库在您运行脚本之前已完全加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM