jquery 3.0 url.indexOf错误

Kam*_*rul 194 jquery jquery-3

一旦更新到jQuery,我就会收到jQuery的错误v3.0.0.

jquery.js:9612 Uncaught TypeError: url.indexOf is not a function

任何想法为什么?

vad*_*lim 498

更新调用load函数的所有代码,

$(window).load(function() { ... });
Run Code Online (Sandbox Code Playgroud)

$(window).on('load', function() { ... });
Run Code Online (Sandbox Code Playgroud)

jquery.js:9612 Uncaught TypeError:url.indexOf不是函数

此错误消息来自jQuery.fn.load功能.

我在申请时遇到了同样的问题.经过一番挖掘,我在jQuery博客中发现了这个声明,

.load,.unload和.error,因为jQuery的1.8过时,没有更多的.使用.on()注册监听器.

我只是改变我的jQuery对象load如上所述调用函数的方式.一切都按预期工作.

  • 在他们的文档http://api.jquery.com/load/中,他们在这个页面上没有大的弃用警告,这很疯狂. (40认同)
  • 有点具有讽刺意味的是,我实际上唯一仍然这样做的地方是错误处理代码然后破坏了自己: - / (5认同)
  • 我发现这是我在将zurbs基础引导到aurelia时遇到的确切问题 (3认同)

小智 23

更好的方法可能是像这样的polyfill

jQuery.fn.load = function(callback){ $(window).on("load", callback) };
Run Code Online (Sandbox Code Playgroud)

有了这个,您可以保持遗留代码不变.如果您使用webpack,请务必使用script-loader.


F3C*_*3CP 15

Jquery 3.0有一些重大更改,删除了由于冲突导致的某些方法.您的错误很可能是由于其中一个更改,例如删除了.load()事件.

阅读jQuery Core 3.0升级指南中的更多内容

要解决此问题,您需要重写代码以与Jquery 3.0兼容,否则您可以使用JQuery Migrate插件来恢复已弃用和/或删除的API和行为.


小智 6

更新到最新版本的 JQuery 后,我遇到了同样的错误。因此,我更新了我正在处理的 jquery 文件,如前面的答案中所述,所以它说.on("load")而不是.load().

这个修复不是很稳定,有时对我不起作用。因此,要解决此问题,您应该从以下位置更新代码:

    .load();
Run Code Online (Sandbox Code Playgroud)

    .trigger("load");
Run Code Online (Sandbox Code Playgroud)

我从以下来源得到了此修复:https://github.com/stevenwanderski/bxslider-4/pull/1024