jQuery冲突1.6和1.7

时间:2012-03-22 00:01:00

标签: jquery

您好,我已经编写过像Facebook这样的自动完成脚本;它在加载单个jQuery版本的单个php页面上运行良好。

我被迫在有两个jQuery调用的页面中使用它:一个用于jquery-1.6.min.js,另一个用于://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery .min.js

在这种情况下,我遇到了问题,使用jquery / 1.7 / jquery.min.js的JavaScript无效。

我尝试过使用 jQuery.noConflict();

但在这种情况下,使用jquery-1.6.min.js的脚本无效。

有人有任何建议吗?

由于 F。

2 个答案:

答案 0 :(得分:1)

我建议你尽量避免在同一页面上使用2版本的jQuery。

如果由于某种原因你无法避免它,那么你必须在两个版本的jQuery上使用noConflict来维护这两个版本。

像var $1 = jQuery.noConflict()和var $2 = jQuery.noConflict()之类的东西,并使用这两个不同的变量。现在,在加载第二个jQuery文件之前执行第一个noConflict代码非常重要。

答案 1 :(得分:1)

用以下内容替换加载jQuery 1.6的script标记:

if (typeof jQuery == 'undefined') {
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = "/path/to/jquery-1.6.min.js";
    document.getElementsByTagName('head')[0].appendChild(script);
}

这确保仅在没有其他版本(例如来自CDN的1.7)存在的情况下才加载jQuery的本地副本。