Tôi nhận được lỗi sau từ jQuery khi nó đã được cập nhật v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
Bất cứ ý tưởng tại sao?
Tôi nhận được lỗi sau từ jQuery khi nó đã được cập nhật v3.0.0
.
jquery.js:9612 Uncaught TypeError: url.indexOf is not a function
Bất cứ ý tưởng tại sao?
Câu trả lời:
Cập nhật tất cả mã của bạn gọi load
chức năng như,
$(window).load(function() { ... });
Đến
$(window).on('load', function() { ... });
jquery.js: 9612 Uncaught TypeError: url.indexOf không phải là một chức năng
Thông báo lỗi này xuất phát từ jQuery.fn.load
chức năng.
Tôi đã gặp vấn đề tương tự trên ứng dụng của tôi. Sau khi đào bới, tôi tìm thấy tuyên bố này trong blog jQuery ,
.load, .unload và .error, không dùng nữa kể từ jQuery 1.8, không còn nữa . Sử dụng .on () để đăng ký người nghe.
Tôi chỉ đơn giản là thay đổi cách các đối tượng jQuery của tôi gọi load
hàm như trên. Và mọi thứ hoạt động như mong đợi.
document.ready
chức năng và nó hoạt động như một bùa mê.
Cách tiếp cận tốt hơn có thể là một polyfill như thế này
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
Với điều này, bạn có thể để lại mã di sản không bị ảnh hưởng. Nếu bạn sử dụng webpack, hãy chắc chắn sử dụng trình tải tập lệnh.
Jquery 3.0 có một số thay đổi đột phá loại bỏ các phương thức nhất định do xung đột. Lỗi của bạn rất có thể là do một trong những thay đổi này, chẳng hạn như loại bỏ sự kiện .load ().
Đọc thêm trong Hướng dẫn nâng cấp jQuery Core 3.0
Để khắc phục điều này, bạn cần phải viết lại mã để tương thích với Jquery 3.0 hoặc nếu không, bạn có thể sử dụng plugin JQuery Migrate để khôi phục các hành vi và API bị loại bỏ và / hoặc bị loại bỏ.
Tôi đã gặp lỗi tương tự sau khi cập nhật lên phiên bản JQuery mới nhất. Vì vậy, tôi đã cập nhật tệp jquery mà tôi đang làm việc, như đã nêu trong một câu trả lời trước đó, vì vậy nó đã nói .on("load")
thay vì .load()
.
Khắc phục sự cố này không ổn định và đôi khi nó không hiệu quả với tôi. Do đó, để khắc phục sự cố này, bạn nên cập nhật mã của mình từ:
.load();
đến
.trigger("load");
Tôi đã sửa lỗi này từ nguồn sau: https://github.com/stevenwanderski/bxslider-4/pull/1024