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

问题描述 投票:188回答:7

我通过bash与foundation new my-project创建了一个新的Foundation 5项目。当我在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

jquery css google-chrome zurb-foundation
7个回答
639
投票

此错误可能是由jQuery事件别名引起的,例如自jQuery 1.8以来弃用的.load.unload.error。在代码中查找这些别名,并用.on()替换它们来注册侦听器。例:

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

变为:

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


30
投票

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

如果你看一下foundation 5 dependencies所需的jQuery版本,就说明了"jquery": "~2.1.0"

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

我希望这有帮助。


16
投票

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

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

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

这样我就可以为我修复它。


10
投票

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

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

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


6
投票

请在下面添加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>

1
投票

我正在使用jQuery 3.3.1,我收到了同样的错误,在我的情况下,URL是一个Object vs一个字符串。

发生了什么事,我拿了URL = window.location - 它返回了一个物体。一旦我把它改成window.location.href - 它没有e.indexOf错误。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.