较旧版本与较新版本的jquery冲突
我遇到了jquery插件的一个主要问题。 我有一些用jquery 1.7.1编写的代码,现在我开始使用bootstrap,需要1.9.1 jquery插件或更高版本。
包含此版本“ https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js ”后,我之前的function停止了工作。 然后我使用了两个版本,但没有运气。
我不想重写我以前的代码,使其与新版本兼容。 请提供解决方案
我收到很多错误:Uncaught TypeError:that.errorDialog.dialog不是函数,.live不是函数,.dialog没有定义,null错误。 我的代码与jQuery 1.7.1一起工作正常
我该如何解决这个请帮忙。
谢谢! 迪皮卡
您可以尝试仅加载较新版本的jQuery,然后加载jquery-migrate
,这将恢复一些旧function。 但是,如果不知道您的应用程序需要哪些特定function,我无法确定这是否可以解决问题。
https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.2.1/jquery-migrate.min.js
理想情况下,您应该确定依赖于旧版jQuery的代码,并更新它们以使用最新版本。 在一天结束时,jQuery的更改是有原因的。 对于新的实现,你几乎肯定会更好。
如果您巧妙地决定更新代码,那么jQuery Core 1.9升级指南可能是一个很好的起点
当您加载jQuery.xxjs时,它将覆盖现有的$和jQuery变量。 但它保留了它们的备份副本(在_$
和_jQuery
)。 调用noConflict
(true)可以恢复js包含之前的情况!
noConflict()
为您提供正在运行的实例(上次加载的实例),因此您可以通过这种方式使用您的版本
恢复:
- 原始页面加载他的“jquery.versionX.js”
- $和jQuery属于versionX
- 你打电话给你的“jquery.versionY.js”
- 现在$和jQuery属于versionY,加上属于versionX的_ $和_jQuery
- var my_jQuery = jQuery.noConflict(true);
- 现在$和jQuery属于versionX,_ $和_jQuery可能为null,而my_jQuery是versionY
如果要还原到特定版本,请在HTML中添加以下JavaScript代码。