【问题标题】:Uncaught ReferenceError: jQuery is not defined Django jQuery CDNUncaught ReferenceError: jQuery is not defined Django jQuery CDN
【发布时间】:2021-12-10 12:43:16
【问题描述】:

我正在构建一个 Django webapp,并希望使用一个 JS 扩展来创建每周计划 link。我已将此扩展名放在我的项目的静态目录中,并在我的 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 文档的其他地方定义。谢谢

【问题讨论】:

    标签: javascript jquery django


    【解决方案1】:

    在加载 CDN 时,您可能需要注意使用 defer。 defer 告诉浏览器等到其他所有内容都加载完毕,因此在您的代码中,底部的 &lt;script&gt; 标记将首先开始运行。您应该在加载 &lt;script&gt; 时删除 jQuery CDN 中的 defer 标签,而不是 defer。这将确保您的 jQuery 库在您运行脚本之前已完全加载。

    【讨论】:

      猜你喜欢
      • 2020-05-24
      • 1970-01-01
      • 2017-02-18
      • 2018-08-27
      • 2018-08-03
      • 2019-07-24
      • 2019-01-04
      • 1970-01-01
      • 2018-01-02
      相关资源
      最近更新 更多