web-dev-qa-db-fra.com

Erreur "Uncaught TypeError: a.indexOf n'est pas une fonction" lors de l'ouverture d'un nouveau projet de fondation

J'ai créé un nouveau projet Foundation 5 via bash, avec foundation new my-project. Lorsque j'ouvre le fichier index.html dans Chrome, une erreur Uncaught TypeError: a.indexOf is not a function s'affiche dans la console et provient de jquery.min.js:4.

J'ai créé le projet en suivant les étapes du site de la fondation, mais je n'arrive pas à me débarrasser de cette erreur. Foundation et jQuery ont l'air d'être inclus et liés correctement dans le fichier index.html, et le fichier app.js lié contient $(document).foundation();

Est-ce que quelqu'un sait ce qui cause cette erreur? et quelle solution pourrait être?

Console error message screenshot

197
FreddieE

Cette erreur peut être causée par les alias d'événements jQuery tels que .load() , .unload() ou .error() s'ils sont tous obsolète depuis jQuery 1.8 . Recherchez ces alias dans votre code et remplacez-les par la méthode .on() . Par exemple, remplacez l'extrait suivant obsolète:

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

avec ce qui suit:

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

Cette erreur est souvent causée par des versions incompatibles de jQuery. J'ai rencontré la même erreur avec un référentiel foundation 6. Mon référentiel utilisait jQuery 3, mais Foundation nécessite une version antérieure. Je l'ai ensuite changé et cela a fonctionné.

Si vous regardez la version de jQuery requise par les dépendances foundation 5 , elle indique "jquery": "~2.1.0".

Pouvez-vous confirmer que vous chargez la bonne version de jQuery?

J'espère que ça aide.

33
shaune

J'ai fait face à ce problème aussi. J'utilisais jquery.poptrox.min.js pour le zoom et l'image sautés et j'ai reçu une erreur qui dit:

“Uncaught TypeError: a.indexOf n'est pas une fonction” erreur.

Cela est dû au fait que cela n’a pas été pris en charge dans 3.3.1/jquery.min.js. Une solution simple consiste donc à le remplacer par une ancienne version 2.1.0/jquery.min.js.

De cette façon, j'ai pu le réparer pour moi.

16
Harshit Pant

Veuillez ajouter ci-dessous le plugin jQuery Migrate

<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>
10

Une des raisons possibles est quand vous chargez jQuery TWICE, comme:

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

Vérifiez donc votre code source et supprimez la charge jQuery en double.

10
T.Todua

J'utilise jQuery 3.3.1 et j'ai reçu la même erreur. Dans mon cas, l'URL était une chaîne Object.

Ce qui s'est passé, c'est que j'ai pris URL = window.location - qui a retourné un objet. Une fois que je l’ai changée en window.location.href - cela fonctionnait sans l’erreur e.indexOf.

1
Ricky Levi

J'ai résolu ce problème en installant la version correcte de Jquery requise par mon projet avec npm

0
Ntiyiso Rikhotso