web-dev-qa-db-ja.com

新しいファンデーションプロジェクトを開くときに "Uncaught TypeError:a.indexOfは関数ではありません"というエラーが表示される

私は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();が含まれています。

誰がこのエラーの原因を知っていますか?そしてどのような解決策がありますか?

Console error message screenshot

178
FreddieE

このエラーはjQuery 1.8以降廃止予定の.load.unloadまたは.errorのようなjqueryイベントエイリアスが原因である可能性があります。コード内でこれらのエイリアスを探し、代わりに.on()に置き換えてリスナーを登録します。例:

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

になります:

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

605
Daniel Llano

このエラーは、 互換性のない jQueryのバージョンが原因で発生することがよくあります。 foundation 6リポジトリでも同じエラーが発生しました。私のリポジトリはjQuery 3を使っていましたが、Foundationは以前のバージョンを必要とします。私はそれを変更し、それがうまくいった。

Foundation 5の依存関係に必要なjQueryのバージョンを見ると"jquery": "~2.1.0"となっています。

正しいバージョンのjQueryをロードしていることを確認できますか?

これが役に立つことを願っています。

30
shaune

私もこの問題に直面しました。画像のポップとズームにjquery.poptrox.min.jsを使用していましたが、次のようなエラーが表示されました。

“ TypeErrorが見つかりません:a.indexOfは関数ではありません” error。

これは3.3.1/jquery.min.jsではサポートされていないため、これを簡単に修正するには古いバージョンの2.1.0/jquery.min.jsに変更します。

このようにして私はそれを修正することができました。

16
Harshit Pant

考えられる理由の1つは、 jQuery TWICE をロードするときです。

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

だから、あなたのソースコードをチェックして、重複したjQueryの負荷を取り除いてください。

9
T.Todua

以下に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エラーなしでうまくいきました。

1
Ricky Levi

私のプロジェクトでJqueryを使用して必要なnpmの正しいバージョンをインストールすることでこれを解決しました

0