我得到以下错误从jQuery一旦它已更新到v3.0.0。
jquery.js:9612 Uncaught TypeError: url。indexOf不是一个函数
知道为什么吗?
我得到以下错误从jQuery一旦它已更新到v3.0.0。
jquery.js:9612 Uncaught TypeError: url。indexOf不是一个函数
知道为什么吗?
Jquery 3.0有一些突破性的变化,删除某些方法由于冲突。您的错误很可能是由于这些更改之一,例如删除了.load()事件。
jQuery Core 3.0升级指南
要解决这个问题,你要么需要重写代码以兼容Jquery 3.0,要么你可以使用Jquery Migrate插件来恢复废弃的和/或删除的api和行为。
更新所有调用load函数的代码,
$(window).load(function() { ... });
To
$(window).on('load', function() { ... });
jquery.js:9612 Uncaught TypeError: url。indexOf不是一个函数
这个错误信息来自jQuery.fn.load函数。
我在申请时也遇到了同样的问题。经过一番挖掘,我在jQuery博客中找到了这样的声明,
.load, .unload和.error,自jQuery 1.8以来已弃用,现在不再使用。 使用.on()来注册监听器。
我只是简单地改变我的jQuery对象调用load函数如上所示。一切都按照预期进行。
在更新到最新版本的JQuery后,我遇到了同样的错误。因此,我更新了我正在工作的jquery文件,正如在以前的回答中所述,所以它说.on(“load”)而不是.load()。
这个修复不是很稳定,有时对我不起作用。因此,要解决这个问题,你应该更新你的代码:
.load();
to
.trigger("load");
我从以下来源得到了这个修复:https://github.com/stevenwanderski/bxslider-4/pull/1024
更好的方法可能是像这样的填充
jQuery.fn.load = function(callback){ $(window).on("load", callback) };
这样您就可以保持遗留代码不变。 如果你使用webpack,一定要使用脚本加载器。
@choz的答案是正确的。如果你有很多用法,想要确保它在任何地方都能正常工作而不做任何更改,你可以添加这些小的迁移片段:
/* Migration jQuery from 1.8 to 3.x */
jQuery.fn.load = function (callback) {
var el = $(this);
el.on('load', callback);
return el;
};
在这种情况下,你在其他节点上没有错误,例如在@Korsmakolnikov回答的$image上!
const $image = $('img.image').load(function() {
$(this).doSomething();
});
$image.doSomethingElseWithTheImage();