我已经通过bash创建了一个新的Foundation 5项目,使用Foundation new my-project。当我在Chrome中打开index.html文件时,Uncaught TypeError: a.c indeof不是一个函数错误,在控制台显示,源于jquery.min.js:4。

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

有人知道是什么导致了这个错误吗?解决方案是什么呢?


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

如果你看一下基础5依赖所要求的jQuery版本,它显示“jQuery”:“~2.1.0”。

你能确认你加载的jQuery版本正确吗?

我希望这能有所帮助。


此错误可能是由jQuery事件别名引起的,如.load(), .unload()或.error(),这些别名自jQuery 1.8以来都已弃用。在代码中查找这些别名,并用.on()方法替换它们。例如,替换以下已弃用的摘录:

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

与以下:

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

其中一个可能的原因是当你两次加载jQuery时,比如:

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

所以,检查你的源代码和删除重复的jQuery加载。


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

" Uncaught TypeError: a. indexof is not a function "错误。

这是因为在3.3.1/jquery.min.js中不支持indexOf,所以一个简单的修复方法是将其更改为旧版本2.1.0/jquery.min.js。

这为我解决了问题。


我使用jQuery 3.3.1和我收到了同样的错误,在我的情况下,URL是一个对象与字符串。

我输入URL = window。Location -返回一个对象。一旦我把它变成window.location.href -它工作w/o e.indexOf错误。


请添加下面的jQuery迁移插件

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

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


这似乎很有趣,但没有人考虑到以下几点。

看看你的库是否需要旧版本的jQuery。如果您不能发现版本,您可以注释和取消注释每个脚本行,直到您找到它。 打开图书馆,找到作者。 在谷歌中搜索库的更新。90%的人都能找到。 更新需要旧版本jQuery的过时库的引用。

在任何情况下都不要降级jquery版本