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?
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(){ ...});
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.
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.
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>
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.
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
.
J'ai résolu ce problème en installant la version correcte de Jquery
requise par mon projet avec npm