5

我已将 jQuery 从 1.3.1 升级到 1.12.4。一切正常,我准备删除 jquery-migrate-1.4.1.js,因为在升级过程中我只是将它用于调试目的。

当我从我的网站部分中删除 jquery-migrate-1.4.1.js 时<head>,该页面不再正常工作。JavaScript/jQuery 出现问题。我正在阅读https://blog.jquery.com/2016/05/19/jquery-migrate-1-4-1-released-and-the-path-to-jquery-3-0/试图查找有关它,这是我发现的:

删除 Migrate 1.x 插件并确保页面在未加载的情况下仍可正常工作。

为什么在成功升级 jQuery 后需要 jquery-migrate-1.4.1.js?我认为这只是一个专门用于调试目的的“幕后”脚本,而不是维护任何 jQuery/JavaScript 功能。

4

1 回答 1

4

目前让您感到困惑的误解是,其目的jquery-migrate-1.4.1.js是安装一些向后关注的变通方法,以使早期的 jQuery 代码在更新的 jQuery 中工作,同时还向您的 console.log 抱怨,以便您可以修复它。它实际上并没有改变你的代码。根据您的评论,一些可帮助您迁移的指针:

例如,我看到:“JQMIGRATE:jQuery.browser 已弃用”。不过这很奇怪,因为该错误的来源是 jquery-migrate-1.4.1.js:45 并且是 jquery-migrate-1.4.1.js 文件,而不是我在代码中使用 jQuery.browser。

进行日志记录的行在中,jquery-migrate-1.4.1.js因此错误似乎指向该文件,但是,该行调用jQuery.browser可能在您正在加载的插件中(这在早期的 jQuery 时代很常见,人们编写了特定于浏览器的黑客)您可以尝试并.browser在所有链接.js文件(甚至是缩小的文件)中搜索以至少隔离插件,然后尝试找到替代方案。

我看到诸如:“jquery-migrate-1.4.1.js:45 JQMIGRATE: jQuery.fn.size() 已弃用;使用 .length 属性”。但是我在源代码中找不到 jQuery.fn.size() 。

的方法jQuery.fn.size()可能会出现在您的代码中,如下所示:

$('li.items').size()

jQuery.fn只是 jQuery 元素函数的对象名称。因为您的 jQuery 对象基于您编写的 jQuery 选择器,所以可能很难搜索它,而是寻找类似的东西.size(),如果它显示在 jQuery 选择器的右侧,然后尝试将其替换为 just .length(没有括号,如length只是一个属性)。

如果您有其他问题,最好将它们作为新问题发布,这样他们就可以获得更直接和普遍有用的答案。

于 2017-10-25T23:40:25.977 回答