较旧版本与较新版本的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代码。