加载插件时不同版本的 jQuery 冲突

Different Versions of jQuery Colliding When Loading a Plugin

本文关键字:jQuery 冲突 版本 插件 加载      更新时间:2023-09-26

我在我的应用程序中使用jQuery。我还有一个来自使用旧版本jQuery的公司的标头。在我的应用程序中,我调用了fancybox,但有时公司的jQuery首先被加载,并且没有fancybox的定义。这会导致页面崩溃,因为在他们的jQuery版本上找不到fancybox。如何解决这个问题?

如果我多次刷新页面,有时页面工作正常,表明我的 jQuery 版本首先加载。这是一个典型的争用条件问题。

更新:

不幸的是,我无法控制第三方公司加载的内容,他们正在执行哪些操作以在页面上显示页眉和页脚。我也无法回到他们的版本,因为我有很多插件取决于我正在使用的版本。(我使用的是最新版本的jQuery,他们使用的是旧版本的jQuery)

在脚本加载之后,在加载脚本之前,添加如下内容:

<script>
    var jQuery_1_9_1 = $.noConflict(true);
</script>

这会将"$"变量更改为"jQuery_1_9_1",并为下一个加载的jQuery版本打开"$"(使jQuery_1_9_1位随心所欲)。

以下是文档:jQuery.noConflict()