2014-12-03 52 views
1

我在我的应用程序中使用jQuery。我也有一个使用旧版jQuery的公司的标题。在我的应用程序中,我称之为fancybox,但有时候公司的jQuery首先被加载,并没有fancybox的定义。这会导致页面崩溃,因为在他们的jQuery版本中找不到fancybox。我怎么解决这个问题?不同版本的jQuery在加载插件时碰撞

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

UPDATE:

不幸的是,我没有第三方公司的负载是什么,他们在做在页面上显示页眉和页脚的控制。我也无法回到他们的版本,因为我有很多依赖于我使用的版本的插件。 (我现在用的是最新版本的jQuery的,他们使用的是旧版本的jQuery)

+1

您应该只在页面加载的jQuery的一个版本。 – j08691 2014-12-03 20:29:08

+2

处理jQuery的多个版本总是一个坏主意。 – Pointy 2014-12-03 20:29:43

+0

'if(hasFancybox){/ *使用FancyBox * /}'? – philtune 2014-12-03 20:30:43

回答

1

后,您的脚本已加载,和他们做之前,添加如下内容:

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

这改变了“ $'变量添加到'jQuery_1_9_1'中,并为下一个加载版本的jQuery打开'$'(无论你喜欢jQuery_1_9_1位)。

这里的文档: jQuery.noConflict()