it-swarm.com.ru

Ошибка «Uncaught TypeError: a.indexOf не является функцией» при открытии нового базового проекта

Я создал новый проект Foundation 5 через bash с foundation new my-project. Когда я открываю файл index.html в Chrome, в консоли отображается ошибка Uncaught TypeError: a.indexOf is not a function, происходящая из jquery.min.js:4.

Я создал проект, следуя инструкциям на базовом сайте, но не могу избавиться от этой ошибки. Foundation и jQuery выглядят так, как будто они включены и правильно связаны в файле index.html, а связанный файл app.js включает в себя $(document).foundation();

Кто-нибудь знает, что вызывает эту ошибку? и какое решение может быть?

Console error message screenshot

186
FreddieE

Эта ошибка может быть вызвана псевдонимами событий jquery, такими как .load, .unload или .error, которые устарели с jQuery 1.8. Найдите эти псевдонимы в своем коде и замените их на .on(), чтобы зарегистрировать слушателей. Пример:

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

будет выглядеть так:

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

630
Daniel Llano

Эта ошибка часто вызывается несовместимыми версиями jQuery. Я столкнулся с той же ошибкой в ​​репозитории foundation 6. Мой репозиторий использовал jQuery 3, но для основания требуется более ранняя версия. Затем я изменил это, и это сработало.

Если вы посмотрите на версию jQuery, требуемую для фундамент 5 зависимостей , в ней говорится "jquery": "~2.1.0".

Можете ли вы подтвердить, что загружаете правильную версию jQuery?

Надеюсь, это поможет.

30
shaune

Я тоже столкнулся с этой проблемой. Я использовал jquery.poptrox.min.js для извлечения и увеличения изображения, и я получил сообщение об ошибке:

"Uncaught TypeError: a.indexOf не является функцией" ошибка.

Это связано с тем, что это не было поддержано в 3.3.1/jquery.min.js, поэтому простым исправлением этого является изменение его на старую версию 2.1.0/jquery.min.js.

Таким образом, я смог исправить это для меня.

16
Harshit Pant

Одна из возможных причин - когда вы загружаете jQuery ДВАЖДЫ, например:

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

Итак, проверьте ваш исходный код и удалите дублирующую загрузку jQuery.

9
T.Todua

Пожалуйста, добавьте ниже плагин 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>
5
Govarthanan Venunathan

Я использую jQuery 3.3.1, и я получил ту же ошибку, в моем случае URL был Object против строки.

Случилось так, что я взял URL = window.location - который возвратил объект. Как только я изменил его на window.location.href - он работал без ошибки e.indexOf.

1
Ricky Levi

Я решил эту проблему, установив правильную версию Jquery, которая требовалась для моего проекта с использованием npm

0
Ntiyiso Rikhotso