成功进行jQuery升级后,为什么需要jquery-migrate-1.4.1.js?

时间:2017-10-25 20:53:46

标签: javascript jquery jquery-migrate

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

当我从网站的<head>部分删除jquery-migrate-1.4.1.js时,该页面不再正常工作。 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?我认为这只是一个&#34;在幕后&#34;用于调试目的的脚本,而不是维护任何jQuery / JavaScript功能。

1 个答案:

答案 0 :(得分:4)

目前绊倒你的误解是jquery-migrate-1.4.1.js的目的是安装一些后向聚焦的解决方法,使早期的jQuery代码在更新的jQuery中工作,同时也向你的控制台抱怨.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选择器的右边,那么尝试用它替换它.length(没有括号,因为length只是一个属性)。

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