Ошибка при открытии нового проекта под названием "Неиспользоваться 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.

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

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

Снимок экрана с сообщением об ошибке консоли

Ответ 1

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

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

со следующим:

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

Ответ 6

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

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

Ответ 7

Либо Даниэль Льано, как Говартанан Венунатан, оба показали мне идеальные решения. Большое спасибо обоим

Ответ 8

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