risposta-alla-domanda-sullo-sviluppo-web-bd.com

Errore "Uncaught TypeError: a.indexOf is not a function" quando si apre un nuovo progetto di base

Ho creato un nuovo progetto Foundation 5 attraverso bash, con foundation new my-project. Quando apro il file index.html in Chrome, viene visualizzato un errore Uncaught TypeError: a.indexOf is not a function nella console, originato in jquery.min.js:4.

Ho creato il progetto seguendo i passaggi sul sito di fondazione, ma non riesco a liberarmi di questo errore. Foundation e jQuery sembrano essere inclusi e collegati correttamente nel file index.html e il file app.js collegato include $(document).foundation();

Qualcuno sa che cosa sta causando questo errore? e quale soluzione potrebbe essere?

 Console error message screenshot

178
FreddieE

Questo errore potrebbe essere causato da alias di eventi jquery come .load, .unload o .error deprecati da jQuery 1.8. Cerca questi alias nel tuo codice e sostituiscili con .on() per registrare invece gli ascoltatori. Esempio:

$(window).load(function(){...});

diventa:

$(window).on('load', function(){ ...});

605
Daniel Llano

Questo errore è spesso causato dalle versioni incompatible jQuery. Ho riscontrato lo stesso errore con un repository foundation 6. Il mio repository utilizzava jQuery 3, ma la fondazione richiede una versione precedente. Poi l'ho cambiato e ha funzionato.

Se si guarda la versione di jQuery richiesta dalle dipendenze di foundation 5 si afferma "jquery": "~2.1.0".

Puoi confermare che stai caricando la versione corretta di jQuery?

Spero che questo possa essere d'aiuto.

30
shaune

Ho affrontato anche questo problema. Stavo usando jquery.poptrox.min.js per lo schiocco e lo zoom delle immagini e ho ricevuto un errore che diceva:

"Uncaught TypeError: a.indexOf is not a function" error.

Questo perché questo non era supportato in 3.3.1/jquery.min.js, quindi una semplice soluzione a questo è di cambiarlo in una vecchia versione 2.1.0/jquery.min.js.

In questo modo sono riuscito a sistemarlo per me.

16
Harshit Pant

Uno dei possibili motivi è quando carichi jQuery TWICE , come:

<script src='..../jquery.js'></script>
....
....
....
....
....
<script src='......./jquery.js'></script>

Quindi, controlla il tuo codice sorgente e rimuovi il carico jQuery duplicato.

9
T.Todua

Si prega di aggiungere qui sotto jQuery Migrate Plugin

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>

Sto usando jQuery 3.3.1 e ho ricevuto lo stesso errore, nel mio caso l'URL era un Object rispetto a una stringa.

Quello che è successo è che ho preso URL = window.location - che ha restituito un oggetto. Una volta ho cambiato in window.location.href - ha funzionato senza l'errore e.indexOf.

1
Ricky Levi