Jeśli używasz jQuery, Angular JS, lub zwykłego starego JavaScriptu i dostajesz „Uncaught ReferenceError: $ is not defined” błąd, który oznacza $ jest albo zmienną albo metodą, którą próbujesz użyć przed zadeklarowaniem jej za pomocą słowa kluczowego var. W jQuery, jest to skrócona nazwa funkcji jQuery() i najczęściej używana w $(document).ready(function()). Jeśli robisz jakieś rzeczy jQuery, gdy DOM jest załadowany i dostajesz ten błąd oznacza to, że Twoja przeglądarka ma problem z załadowaniem biblioteki jQuery albo z Internetu lub lokalnego systemu plików.
W tym artykule, zobaczysz niektóre z najczęstszych przyczyn „Uncaught ReferenceError: $ nie jest zdefiniowany” błąd i jak je rozwiązać, ale przed tym nauczmy się kilku podstaw o strasznym Uncaught ReferenceError: $ nie jest zdefiniowany błąd.
I, Jeśli chcesz nauczyć się Nowoczesny JavaScript lub poziom swoich umiejętności to proponuję dołączyć The Complete JavaScript Course: Build Real Project autorstwa Jonasa Scmedtmanna na Udemy. Jest to jeden z najlepszych i ręka-son kurs do nauki ES 6 i innych nowych funkcji Javascript.
Jednym z najczęstszych powodów takiego błędu jest bezpośrednio zaczynając od jQuery bez znajomości podstaw JavaScript. Widziałem wielu programistów internetowych, którzy pochodzą z Java, C#, HTML i Python tło zaczęli używać jQuery nie wiedząc wiele o JavaScript.
Jeśli zdarzy ci się pracować na tym samym scenariuszu, zdecydowanie sugeruję, aby przeczytać co najmniej jedną z dobrych książek JavaScript dla początkujących np. Head First JavaScript. Zawsze pamiętaj, że jQuery jest biblioteką zbudowaną na JavaScript, gdy znasz JavaScript, znacznie łatwiej jest rozwiązać każdy błąd jQuery.
Uncaught ReferenceError: X is not defined
Ponieważ JavaScript wykonuje się wewnątrz przeglądarki, przeglądarki takie jak Firefox, Chrome, Edge lub Internet Explorer rzucają ten błąd, gdy używasz zmiennej, która nie jest zdefiniowana, na przykład następujący kod rzuci ten błąd, ale gdy zadeklarujesz zmienną za pomocą słowa kluczowego var, błąd zniknie:
data; // ReferenceError: data is not definedvar data;data; // No more errors
Podobnie, jeśli uzyskasz dostęp do metody przed jej zadeklarowaniem, otrzymasz ten błąd, jak pokazano poniżej:
process(); // ReferenceError : process is not definedprocess = function(){};process(); // Brak błędów
Teraz, gdy dowiedziałeś się, kiedy przeglądarka rzuca Uncaught ReferenceError: $ is not defined, nadszedł czas, aby spojrzeć na niektóre wspólne powody, dla których ten błąd występuje podczas korzystania z jQuery, AngularJS lub innej biblioteki JavaScript, która używa $ jako skrótu.
1) Jednym z najczęstszych powodów „ReferenceError: $ is not defined” w aplikacji opartej na jQuery jest to, że plugin jQuery jest dołączony przed plikiem jQuery. Ponieważ wtyczka jQuery używa $, rzuca „ReferenceError: $ is not defined”, jeśli nie znajdzie, co jest logiczne, ponieważ jQuery nie został załadowany do tego czasu.
<script src="/lib/jquery.plugin.js"></script><script src="/lib/jquery.min.js"></script>
.Rozwiązanie: Dołącz plik jquery.js przed wszelkimi plikami wtyczek jQuery.
<script src="/lib/jquery.min.js"></script><script src="/lib/jquery.plugin.js"></script>
2) Drugą najczęstszą przyczyną otrzymania „ReferenceError: $ nie jest zdefiniowany” w jQuery jest ze względu na nieprawidłową ścieżkę, albo jest to literówka lub plik jQuery jest przeniesiony do innej lokalizacji, przeglądarka nie jest w stanie załadować plik jQuery.
Jednym z rozwiązań tego problemu jest po prostu naprawić ścieżkę do biblioteki jQuery. Jeśli pobierasz jQuery z CDN to można również użyć Google hostowany plik jQuery, który jest prawie zawsze dostępny.
3) Innym dziwaczne, ale wspólny powód „ReferenceError: $ nie jest zdefiniowany” w jQuery” jest to, że może być pracy offline, ale ładowanie jQuery z Internetu. Jest to jeden z głupich błędów każdy web
developer czyni to kiedyś lub inne. Rozwiązanie jest proste, albo podłączyć do Internetu lub użyć lokalnej kopii biblioteki jQuery, jak pokazano poniżej:
<script src="/js/jquery.min.js"></script>