Uncaught ReferenceError: jQuery не определен Django jQuery CDN
Я создаю Django webapp и хочу использовать JS расширение, которое создает еженедельное расписание link. Я поместил это расширение в статический каталог моего проекта и импортировал jQuery и расширение в файл base.html следующим образом:
<!-- 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. Спасибо
Возможно, вам придется следить за использованием defer
при загрузке CDN. defer
говорит браузеру подождать, пока загрузится все остальное, поэтому в вашем коде тег <script>
, который у вас внизу, начнет выполняться первым. Вам следует удалить тег defer
в jQuery CDN и вместо него defer
при загрузке вашего <script>
. Это обеспечит полную загрузку библиотеки jQuery перед запуском вашего сценария.