私はfoundation new my-project
を使ってbashを通して新しいFoundation 5プロジェクトを作成しました。 Chromeでindex.htmlファイルを開くと、コンソールにUncaught TypeError: a.indexOf is not a function
から始まるjquery.min.js:4
エラーが表示されます。
基礎サイトの手順に従ってプロジェクトを作成しましたが、このエラーを取り除くことはできません。 FoundationとjQueryはindex.htmlファイルに正しく含まれてリンクされているように見え、リンクされたapp.jsファイルには$(document).foundation();
が含まれています。
誰がこのエラーの原因を知っていますか?そしてどのような解決策がありますか?
このエラーはjQuery 1.8以降廃止予定の.load
、.unload
または.error
のようなjqueryイベントエイリアスが原因である可能性があります。コード内でこれらのエイリアスを探し、代わりに.on()
に置き換えてリスナーを登録します。例:
$(window).load(function(){...});
になります:
$(window).on('load', function(){ ...});
このエラーは、 互換性のない jQueryのバージョンが原因で発生することがよくあります。 foundation 6
リポジトリでも同じエラーが発生しました。私のリポジトリはjQuery 3
を使っていましたが、Foundationは以前のバージョンを必要とします。私はそれを変更し、それがうまくいった。
Foundation 5の依存関係に必要なjQueryのバージョンを見ると"jquery": "~2.1.0"
となっています。
正しいバージョンのjQueryをロードしていることを確認できますか?
これが役に立つことを願っています。
私もこの問題に直面しました。画像のポップとズームにjquery.poptrox.min.js
を使用していましたが、次のようなエラーが表示されました。
“ TypeErrorが見つかりません:a.indexOfは関数ではありません” error。
これは3.3.1/jquery.min.jsではサポートされていないため、これを簡単に修正するには古いバージョンの2.1.0/jquery.min.jsに変更します。
このようにして私はそれを修正することができました。
考えられる理由の1つは、 jQuery TWICE をロードするときです。
<script src='..../jquery.js'></script>
....
....
....
....
....
<script src='......./jquery.js'></script>
だから、あなたのソースコードをチェックして、重複したjQueryの負荷を取り除いてください。
以下にjQuery Migrate Pluginを追加してください。
<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 stringでした。
起こったことは、私がURL = window.location
を取ったことでした - それはオブジェクトを返しました。 window.location.href
に変更したら - e.indexOf
エラーなしでうまくいきました。
私のプロジェクトでJquery
を使用して必要なnpm
の正しいバージョンをインストールすることでこれを解決しました