打开新的基础项目时,“未捕获的TypeError:a.indexOf不是函数”错误

时间:2016-08-10 11:08:43

标签: jquery css google-chrome zurb-foundation

我通过bash创建了一个新的Foundation 5项目,foundation new my-project。当我在Chrome中打开index.html文件时,控制台中会显示Uncaught TypeError: a.indexOf is not a function错误,该错误来自jquery.min.js:4

我按照基础网站上的步骤创建了项目,但我似乎无法摆脱这个错误。基础和jQuery看起来像是在index.html文件中包含并正确链接,链接的app.js文件包括$(document).foundation();

有谁知道导致此错误的原因是什么?什么解决方案可能是什么?

Console error message screenshot

8 个答案:

答案 0 :(得分:612)

此错误可能是由jQuery 1.8之后的.load.unload.error等jquery事件别名引起的。在代码中查找这些别名并将其替换为.on()以注册侦听器。例如:

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

变为:

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

答案 1 :(得分:30)

此错误通常由不兼容的 jQuery版本引起。我在foundation 6存储库中遇到了同样的错误。我的存储库使用jQuery 3,但基础需要早期版本。然后我改变它,它工作。

如果您查看foundation 5 dependencies所需的jQuery版本,请说明"jquery": "~2.1.0"

您能否确认您正在加载正确版本的jQuery?

我希望这会有所帮助。

答案 2 :(得分:16)

我也遇到过这个问题。我使用jquery.poptrox.min.js进行图像弹出和缩放,我收到一条错误消息:

“未捕获的TypeError:a.indexOf不是函数”错误。

这是因为3.3.1 / jquery.min.js不支持此功能,因此对此进行简单修复就是将其更改为旧版本2.1.0 / jquery.min.js。

这样我就可以为我修好了。

答案 3 :(得分:9)

可能的原因之一是加载jQuery TWICE ,例如:

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

因此,请检查您的源代码并删除重复的jQuery加载。

答案 4 :(得分:5)

请在下面添加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 :(得分:1)

我正在使用jQuery 3.3.1,但收到相同的错误,在我的情况下,URL是Object与字符串。

发生了什么事,我拿了URL = window.location-返回了一个对象。一旦将其更改为window.location.href-它就不会出现e.indexOf错误。

答案 6 :(得分:0)

我通过使用Jquery安装项目需要的正确版本npm来解决了这个问题

答案 7 :(得分:0)

这似乎很有趣,但没有人考虑以下内容。

  1. 了解您的库是否需要旧版本的 jQuery。如果你不是那么好,你可以对每个脚本行进行注释和取消注释,直到找到为止。
  2. 打开图书馆并找到作者。
  3. 在 google 中搜索库的更新。 90% 你会找到的。
  4. 更新需要旧版本 jQuery 的过时库的参考。
<块引用>

在任何情况下都不要降级您的 JQUERY 版本