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