Saya mendapatkan galat berikut dari jQuery setelah diperbarui v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
Ada Ide mengapa?
Saya mendapatkan galat berikut dari jQuery setelah diperbarui v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
Ada Ide mengapa?
Jawaban:
Perbarui semua kode Anda yang load
berfungsi seperti panggilan ,
$(window).load(function() { ... });
Untuk
$(window).on('load', function() { ... });
jquery.js: 9612 Uncaught TypeError: url.indexOf bukan sebuah fungsi
Pesan kesalahan ini berasal dari jQuery.fn.load
fungsi.
Saya telah menemukan masalah yang sama pada aplikasi saya. Setelah menggali, saya menemukan pernyataan ini di blog jQuery ,
.load, .unload, dan .error, sudah tidak digunakan lagi sejak jQuery 1.8, tidak ada lagi . Gunakan .on () untuk mendaftarkan pendengar.
Saya hanya cukup mengubah bagaimana objek jQuery saya memanggil load
fungsi seperti di atas. Dan semuanya berjalan seperti yang diharapkan.
document.ready
fungsi dan bekerja seperti pesona.
Pendekatan yang lebih baik bisa berupa polyfill seperti ini
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
Dengan ini, Anda dapat membiarkan kode lama tidak tersentuh. Jika Anda menggunakan webpack, pastikan untuk menggunakan skrip-loader.
Jquery 3.0 memiliki beberapa perubahan besar yang menghapus metode tertentu karena konflik. Kesalahan Anda kemungkinan besar karena salah satu perubahan ini seperti penghapusan acara .load ().
Baca lebih lanjut di Panduan Upgrade jQuery Core 3.0
Untuk memperbaikinya, Anda harus menulis ulang kode agar kompatibel dengan Jquery 3.0 atau Anda dapat menggunakan plugin JQuery Migrate yang mengembalikan API dan perilaku yang tidak digunakan dan / atau dihapus.
Saya menemukan kesalahan yang sama setelah memperbarui ke versi terbaru JQuery. Oleh karena itu saya memperbarui file jquery yang sedang saya kerjakan, seperti yang dinyatakan dalam jawaban sebelumnya, jadi katanya .on("load")
bukan .load()
.
Perbaikan ini tidak terlalu stabil dan terkadang tidak berhasil untuk saya. Karenanya untuk memperbaiki masalah ini Anda harus memperbarui kode Anda dari:
.load();
untuk
.trigger("load");
Saya mendapatkan perbaikan ini dari sumber berikut: https://github.com/stevenwanderski/bxslider-4/pull/1024