it-swarm.com.de

"Uncaught TypeError: a.indexOf ist keine Funktion" Fehler beim Öffnen eines neuen Foundation-Projekts

Ich habe mit foundation new my-project ein neues Foundation 5-Projekt durch bash erstellt. Wenn ich die Datei index.html in Chrome öffne, wird in der Konsole ein Uncaught TypeError: a.indexOf is not a function-Fehler angezeigt, der von jquery.min.js:4 ausgeht.

Ich habe das Projekt gemäß den Schritten auf der Fundament-Site erstellt, aber ich kann diesen Fehler scheinbar nicht beseitigen. Foundation und jQuery sehen so aus, als wären sie in der Datei index.html enthalten und korrekt verknüpft, und die verknüpfte Datei app.js enthält $(document).foundation();

Weiß jemand, was diesen Fehler verursacht? und was für eine lösung könnte das sein?

Console error message screenshot

197
FreddieE

Dieser Fehler kann durch jQuery-Ereignisaliase wie .load() , .unload() oder .error() verursacht werden, die alle sind. veraltet seit jQuery 1.8 . Suchen Sie in Ihrem Code nach diesen Aliasen und ersetzen Sie sie stattdessen durch die Methode .on() . Ersetzen Sie beispielsweise den folgenden veralteten Auszug:

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

mit den folgenden:

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

Dieser Fehler wird häufig durch inkompatible jQuery-Versionen verursacht. Ich habe den gleichen Fehler bei einem foundation 6 -Repository festgestellt. Mein Repository verwendete jQuery 3, aber für die Gründung ist eine frühere Version erforderlich. Ich habe es dann geändert und es hat funktioniert.

Wenn Sie sich die Version von jQuery ansehen, die von den - Abhängigkeiten benötigt wird , heißt es "jquery": "~2.1.0".

Können Sie bestätigen, dass Sie die richtige Version von jQuery laden?

Ich hoffe das hilft.

33
shaune

Ich war auch mit diesem Problem konfrontiert. Ich habe jquery.poptrox.min.js zum Vergrößern und Zoomen von Bildern verwendet und eine Fehlermeldung erhalten, die besagt:

“Uncaught TypeError: a.indexOf ist keine Funktion” Fehler.

Dies liegt daran, dass dies in 3.3.1/jquery.min.js nicht unterstützt wurde. Eine einfache Lösung hierfür besteht darin, es in eine alte Version 2.1.0/jquery.min.js zu ändern.

Auf diese Weise konnte ich es für mich reparieren.

16
Harshit Pant

Bitte fügen Sie unten jQuery Migrate Plugin hinzu

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

Einer der möglichen Gründe ist, wenn Sie laden zweimal jQuery, wie:

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

Überprüfen Sie also Ihren Quellcode und entfernen Sie doppeltes Laden von jQuery.

10
T.Todua

Ich verwende jQuery 3.3.1 und habe den gleichen Fehler erhalten. In meinem Fall war die URL eine Object im Vergleich zu einer Zeichenfolge.

Was passierte war, dass ich URL = window.location nahm - was ein Objekt zurückgab. Sobald ich es in window.location.href geändert habe, hat es ohne den e.indexOf -Fehler funktioniert.

1
Ricky Levi

Ich habe dies gelöst, indem ich die richtige Version von Jquery installiert habe, die mein Projekt mit npm benötigt

0