I've created a new Foundation 5 project through bash, with foundation new my-project
. When I open the index.html file in Chrome an Uncaught TypeError: a.indexOf is not a function
error is shown in the console, originating in jquery.min.js:4
.
I created the project following the steps on the foundation site, but I can't seem to get rid of this error. Foundation and jQuery look like they are included and linked up correctly in the index.html file, and the linked app.js file is including $(document).foundation();
Does anyone know what is causing this error? and what a solution might be?
This error might be caused by jquery event aliases like .load
, .unload
or .error
deprecated since jQuery 1.8. Look for these aliases in your code and replace them with .on()
to register listeners instead. Example:
$(window).load(function(){...});
becomes:
$(window).on('load', function(){ ...});
This error is often caused by incompatible jQuery versions. I encountered the same error with a foundation 6
repository. My repository was using jQuery 3
, but foundation requires an earlier version. I then changed it and it worked.
If you look at the version of jQuery required by the foundation 5 dependencies it states "jquery": "~2.1.0"
.
Can you confirm that you are loading the correct version of jQuery?
I hope this helps.
I faced this issue too. I was using jquery.poptrox.min.js
for image popping and zooming and I received an error which says:
“Uncaught TypeError: a.indexOf is not a function” error.
This is because this is was not supported in the 3.3.1/jquery.min.js so a simple fix to this is to change it to an old version 2.1.0/jquery.min.js.
This way I was able to fix it for me.
One of the possible reasons is when you load jQuery TWICE ,like:
<script src='..../jquery.js'></script>
....
....
....
....
....
<script src='......./jquery.js'></script>
So, check your source code and remove duplicate jQuery load.