打开新的基础项目时出现“Uncaught TypeError: a.indexOf is not a function”错误

IT技术 javascript jquery css google-chrome zurb-foundation
2021-01-31 22:52:20

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

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

有谁知道是什么导致了这个错误?什么解决方案可能是?

控制台错误信息截图

6个回答

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

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

具有以下内容:

$(window).on('load', function(){ ...});
@DanielLlano 你拯救了我的一天
2021-03-15 22:52:20
这为我修好了。
2021-03-21 22:52:20
@Crine$(function() {});用于文档就绪,这与窗口加载事件不同。此外,文档就绪经常在窗口加载之前触发。
2021-03-22 22:52:20
像魅力一样工作。$(window).on('load', function(){
2021-03-23 22:52:20
我在 2.2.1 @User 中没有它,但是一旦我切换到 3.3.1,我就必须进行此更改。
2021-04-11 22:52:20

请在下面添加 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>
这怎么可能奏效?安装 jQuery migrate 用于代码迁移,安装 jQuery 特定版本解决版本问题。这些都不能长期解决这个问题。
2021-03-21 22:52:20
我确认这已经解决了这个问题。
2021-04-07 22:52:20
那解决了我的问题,谢谢
2021-04-12 22:52:20
对我来说,这可能是一个临时的解决方法,而您使用的第 3 方插件仍然与您自己的网站有不兼容的 jquery 版本。在插件更新它之前,这似乎是一个可行的解决方案。我知道这不是迁移脚本的目的,但它仍然可以作为一种解决方法。
2021-04-12 22:52:20

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

如果您查看基础 5 依赖项所需的 jQuery 版本,它会指出"jquery": "~2.1.0"

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

我希望这有帮助。

基金会 5.5.1 声明jQuery >= 2.1.0github.com/foundation/foundation-sites/blob/...
2021-03-28 22:52:20

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

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

这是因为indexOf它不受支持,3.3.1/jquery.min.js因此一个简单的解决方法是将其更改为旧版本2.1.0/jquery.min.js

这为我修好了。

恢复到旧版本不好。
2021-03-19 22:52:20
永远不要退回到版本,因为它可能会导致严重的安全问题。
2021-03-20 22:52:20
欢迎 !@悉达多
2021-03-25 22:52:20
如果是这种情况:您可以替换下面的代码 $(window).load(function(){...}); 使用以下内容: $(window).on('load', function(){ ...}); 那也行!:)
2021-04-03 22:52:20
我移到 3.2.1 到 2.1.0 并且它起作用了。这对我有用。
2021-04-11 22:52:20

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

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

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

它发生在 wordpress 上,加载它自己的版本,如果你也在你身边加载一个 jquery 版本。
2021-03-30 22:52:20