ฉันได้รับข้อผิดพลาดต่อไปนี้จาก 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 () เพื่อลงทะเบียนผู้ฟัง
ฉันแค่เปลี่ยนวิธีการที่วัตถุ jQuery ของฉันเรียกใช้load
ฟังก์ชันดังกล่าวข้างต้น และทุกอย่างทำงานตามที่คาดไว้
document.ready
ฟังก์ชั่นและมันก็ทำงานเหมือนมีเสน่ห์
วิธีที่ดีกว่าอาจเป็น polyfill เช่นนี้
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
ด้วยวิธีนี้คุณสามารถปล่อยให้รหัสเดิมไม่มีการแตะต้อง หากคุณใช้ webpack ต้องแน่ใจว่าใช้สคริปต์โหลดเดอร์
Jquery 3.0 มีการเปลี่ยนแปลงบางอย่างที่ลบวิธีการบางอย่างเนื่องจากความขัดแย้ง ข้อผิดพลาดของคุณน่าจะเกิดจากการเปลี่ยนแปลงอย่างใดอย่างหนึ่งเช่นการลบเหตุการณ์. load ()
อ่านเพิ่มเติมในคู่มือการอัพเกรด jQuery Core 3.0
ในการแก้ไขปัญหานี้คุณต้องเขียนรหัสใหม่เพื่อให้เข้ากันได้กับ Jquery 3.0 หรืออื่น ๆ คุณสามารถใช้ปลั๊กอิน JQuery Migrateซึ่งคืนค่า API และพฤติกรรมที่เลิกใช้แล้วและ / หรือลบออก
ฉันพบข้อผิดพลาดเดียวกันหลังจากอัปเดตเป็น JQuery เวอร์ชันล่าสุด ดังนั้นผมจึงมีการปรับปรุงแฟ้ม jQuery ที่ผมกำลังทำงานอยู่ตามที่ระบุไว้ในคำตอบก่อนหน้าดังนั้นจึงกล่าวแทน.on("load")
.load()
การแก้ไขนี้ไม่เสถียรมากและบางครั้งก็ไม่ได้ผลสำหรับฉัน ดังนั้นเพื่อแก้ไขปัญหานี้คุณควรอัปเดตรหัสของคุณจาก:
.load();
ถึง
.trigger("load");
ฉันได้รับการแก้ไขนี้จากแหล่งต่อไปนี้: https://github.com/stevenwanderski/bxslider-4/pull/1024