У меня эта ошибка при выполнении моей html-страницы, у меня обычный html
<HTML>
<HEAD>
<script type="text/javascript" src="js/d3.v3.min.js"></script>
<script type="text/javascript" src="js/utilities.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<TITLE>Título de la página</TITLE>
</HEAD>
<BODY>
Aquí iría el contenido de la página
</BODY>
</HTML>
но при выполнении моей страницы он показывает мне ошибку в файле «utilerias.js», который содержит следующее:
$(document).ready(function() {
$(document).on('click','#id_articulo', function(e) {
e.preventDefault();
alert('CLICK');
return false;
});
});
Ошибка отмечена в первой строке $(document..... Помогите, пожалуйста, я уже попробовал несколько решений, и ошибка продолжается.
Вызов ваших скриптов некорректен, на данный момент у вас он такой
Проблема в том, что когда браузер выполняет код
utilities.js
вызова JQUERY, он все равно не происходит, поэтому он не распознает синтаксис,$
поэтому он должен быть такимУчитывая вышеизложенное, к моменту выполнения кода
utilities.js
браузер уже знает синтаксис библиотеки JQUERY.Вы должны поместить скрипты в конец вашей страницы непосредственно перед
</body>
тем, как скрипты в голове будут блокировать рендеринг вашей страницы,HTML
пока они не будут полностью загружены.Ошибка у вас заключается в том, что ваши библиотеки
j3
иutilities
зависят от них,JQuery
и каждый скрипт при загрузке полностью запускается и продолжает загрузку следующих скриптов, вы можете настроить порядок, чтобыJQuery
он вызывался первым, когда другие две библиотекиJQuery
уже выполняются доступный.Если вы хотите использовать в нем сценарии , вы можете использовать
head
атрибутыasync
илиdefer
, в зависимости от вашего варианта использования, чтобы рендеринг вашего HTML не блокировался.И даже если вы используете
async
илиdefer
, всегда нужно учитывать порядок выполнения каждого скрипта.