Stworzyłem nowy projekt Foundation 5 poprzez bash, z foundation new my-project
. Gdy otwieram plik index.html w Chrome, Uncaught TypeError: a.indexOf is not a function
w konsoli pojawia się błąd, który pochodzi z jquery.min.js:4
.
Stworzyłem projekt zgodnie z instrukcjami na stronie fundacji, ale nie mogę pozbyć się tego błędu. Foundation i jQuery wyglądają tak, jakby zostały poprawnie włączone i połączone w pliku index.html, a dołączony plik app.js zawiera$(document).foundation();
Czy ktoś wie, co powoduje ten błąd? i jakie może być rozwiązanie?
źródło
$(function() {});
jest gotowy do dokumentu, co nie jest tym samym, co zdarzenie ładowania okna. Ponadto funkcja doc ready często uruchamia się przed załadowaniem okna.Ten błąd jest często powodowany przez niekompatybilne wersje jQuery. Napotkałem ten sam błąd w
foundation 6
repozytorium. Moje repozytorium używałojQuery 3
, ale podstawa wymaga wcześniejszej wersji. Potem to zmieniłem i zadziałało.Jeśli spojrzysz na wersję jQuery wymaganą przez zależności fundamentalne 5 , stwierdza ona
"jquery": "~2.1.0"
.Czy możesz potwierdzić, że ładujesz poprawną wersję jQuery?
Mam nadzieję, że to pomoże.
źródło
Dodaj poniżej wtyczkę migracyjną jQuery
źródło
Ja też stanąłem przed tym problemem. Używałem
jquery.poptrox.min.js
do obrazu popping oraz powiększanie i otrzymałem błąd, który powiedział:Wynika to z faktu, że
indexOf
nie było obsługiwane w3.3.1/jquery.min.js
tak prostym rozwiązaniu, aby zmienić go na starą wersję2.1.0/jquery.min.js
.Naprawiłem to dla mnie.
źródło
Jednym z możliwych powodów jest to, kiedy ładowanie jQuery dwa razy , na przykład:
Sprawdź kod źródłowy i usuń zduplikowane ładowanie jQuery.
źródło
Używam
jQuery 3.3.1
i otrzymałem ten sam błąd, w moim przypadku adres URL toObject
ciągiem vs.To, co się stało, to wziąłem
URL = window.location
- co zwróciło przedmiot. Raz zmieniłem nawindow.location.href
- działało beze.indexOf
błędu.źródło
Rozwiązałem ten problem, instalując poprawną wersję
Jquery
wymaganą przez mój projektnpm
źródło