新しい基礎プロジェクトを開くときの「キャッチされていないTypeError:a.indexOfは関数ではありません」エラー


250

私は、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();

誰かがこのエラーの原因を知っていますか?そして、解決策は何でしょうか?

コンソールエラーメッセージのスクリーンショット

回答:


819

このエラーは、などのjQueryイベントエイリアスが原因.load()である.unload()、jQuery 1.8以降.error()ではすべて非推奨 となっている可能性があります。コードでこれらのエイリアスを検索し、代わりにメソッドで置き換えます。たとえば、次の非推奨の抜粋を置き換えます。.on()

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

次のように:

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

3
2.2.1の@Userにはありませんでしたが、3.3.1に切り替えた直後に、この変更を行う必要がありました。
Codemonkey

@DanielLlanoあなたは私の日を救う
Owaiz Yusufi

1
これで解決しました。
Radagast the Brown

@Crine $(function() {});はドキュメントの準備ができているため、ウィンドウロードイベントとは異なります。また、ウィンドウのロード前にdoc readyが頻繁に起動します。
ロバート

こんにちは、なぜか教えてもらえますか?バージョン1.12.3で動作する前に、3.4.1に移行すると動作しなくなりました
Armando Marques Sobrinho

35

このエラーは、多くの場合、互換性のない jQueryバージョンが原因で発生します。foundation 6リポジトリで同じエラーが発生しました。私のリポジトリはを使用jQuery 3していましたが、Foundationには以前のバージョンが必要です。私はそれを変更し、それはうまくいきました。

Foundation 5の依存関係に必要なjQueryのバージョンを確認すると、それが示されています"jquery": "~2.1.0"

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

これがお役に立てば幸いです。


29

以下に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>

これで問題が解決したことを確認しました。
Morad Hamdy

17

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

「キャッチされていないTypeError:a.indexOfは関数ではありません」エラー。

これはindexOfではサポートされ3.3.1/jquery.min.jsていなかったため、これに対する単純な修正は、古いバージョンに変更すること2.1.0/jquery.min.jsです。

これで解決しました。


2
私は3.2.1から2.1.0に移動し、うまくいきました。これでうまくいきました。
Siddharth

ようこそ !@Siddharth
Harshit Pant

1
重大なセキュリティ問題が発生する可能性があるため、バージョンに戻らないでください。
Ajay Takur

1
その場合:以下のコードを置き換えることができます$(window).load(function(){...}); 次のように:$(window).on( 'load'、function(){...}); それもうまくいくでしょう!:)
Harshit Pant

13

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

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

したがって、ソースコードを確認して、重複するjQueryロードを削除してください。


2
あなたの側でjqueryバージョンもロードしている場合、それは独自のバージョンをロードするワードプレスで起こります。
Olou 2018

1

私が使用jQuery 3.3.1していますが、同じエラーが発生しました。私の場合、URLはObject文字列でした。

何が起こったのか、私はそれを取りましたURL = window.location-それはオブジェクトを返しました。変更後window.location.hrefe.indexOfエラーなしで動作しました。


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.