jQueryがに更新された後、次のエラーが発生しv3.0.0
ます。
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
何かアイデアは?
jQueryがに更新された後、次のエラーが発生しv3.0.0
ます。
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
何かアイデアは?
回答:
次のload
ような関数を呼び出すすべてのコードを更新します。
$(window).load(function() { ... });
に
$(window).on('load', function() { ... });
jquery.js:9612 Uncaught TypeError:url.indexOfは関数ではありません
このエラーメッセージはjQuery.fn.load
関数からのものです。
アプリケーションで同じ問題に遭遇しました。少し掘り下げた後、jQueryブログでこのステートメントを見つけました。
.load、.unload、および.errorは、jQuery 1.8以降非推奨になりました。.on()を使用してリスナーを登録します。
load
上記のように、jQueryオブジェクトが関数を呼び出す方法を変更するだけです。そして、すべてが期待どおりに動作します。
document.ready
機能で使用し、それは魅力のように働いています。
より良いアプローチはこのようなポリフィルかもしれません
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
これにより、レガシーコードをそのままにしておくことができます。webpackを使用する場合は、必ずスクリプトローダーを使用してください。
jquery 3.0には、競合のために特定のメソッドを削除するいくつかの重大な変更があります。エラーの原因として最も可能性が高いのは、.load()イベントの削除など、これらの変更の1つです。
jQuery Core 3.0アップグレードガイドで詳細を読む
これを修正するには、Jquery 3.0と互換性を持つようにコードを書き直すか、非推奨または削除されたAPIと動作を復元するJQuery Migrateプラグインを使用できます。
JQueryの最新バージョンに更新した後、同じエラーに遭遇しました。したがって、前の回答で述べたように、私が作業していたjqueryファイルを更新したので、の.on("load")
代わりにそれが言いました.load()
。
この修正はあまり安定しておらず、うまくいかない場合があります。したがって、この問題を修正するには、次のコードを更新する必要があります。
.load();
に
.trigger("load");
次のソースからこの修正を入手しました:https : //github.com/stevenwanderski/bxslider-4/pull/1024