我通过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();
有谁知道导致此错误的原因是什么?什么解决方案可能是什么?
此错误可能是由jQuery事件别名引起的,例如自jQuery 1.8以来弃用的.load
,.unload
或.error
。在代码中查找这些别名,并用.on()
替换它们来注册侦听器。例:
$(window).load(function(){...});
变为:
$(window).on('load', function(){ ...});
此错误通常是由不兼容的jQuery版本引起的。我在foundation 6
存储库中遇到了同样的错误。我的存储库使用的是jQuery 3
,但基础需要早期版本。然后我改变它,它工作。
如果你看一下foundation 5 dependencies所需的jQuery版本,就说明了"jquery": "~2.1.0"
。
你能否确认你正在加载正确版本的jQuery?
我希望这有帮助。
我也遇到过这个问题。我使用jquery.poptrox.min.js
进行图像弹出和缩放,我收到一个错误,上面写着:
“未捕获的TypeError:a.indexOf不是函数”错误。
这是因为3.3.1 / jquery.min.js不支持这一点,因此对此进行简单修复就是将其更改为旧版本2.1.0 / jquery.min.js。
这样我就可以为我修复它。
其中一个可能的原因是当你加载jQuery TWICE时,如:
<script src='..../jquery.js'></script>
....
....
....
....
....
<script src='......./jquery.js'></script>
因此,请检查您的源代码并删除重复的jQuery加载。
请在下面添加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 3.3.1
,我收到了同样的错误,在我的情况下,URL是一个Object
vs一个字符串。
发生了什么事,我拿了URL = window.location
- 它返回了一个物体。一旦我把它改成window.location.href
- 它没有e.indexOf
错误。
我通过使用Jquery
安装我的项目所需的正确版本的npm
解决了这个问题