2012-02-06 43 views
0

我们的项目在jquery 1.3.2上运行,是一个非常旧的版本,我知道。无论如何,我们现在不会升级它。我们现在只需要使用jquery的chosen plugin(下载链接 - https://github.com/harvesthq/chosen),至少需要jQuery 1.4。所以,我也跟着下面的解决方案来加载在同一页上的jQuery的两个版本 -无法使用jquery插件使用更高版本的jquery,同时加载jquery的两个版本

https://stackoverflow.com/a/1566644/351903

但我不能够调用jQuery的较新版本的选择。这是我做过什么 -

1.在jQuery的装载部分

<script type="text/javascript" src="/js/jquery.js"></script> 

<!-- Added for using jQuery chosen plugin --> 
<script type="text/javascript" src="/js/jquery-1.4.min.js"></script> 
<script type="text/javascript"> 
    var jQuery_1_4 = $.noConflict(true); 
</script> 

注 - 我没有写对于旧版本的jQuery以下,因为我不想取代无论我已经写了类似的东西$("something").somefunc()这个jQuery_1_3_2("something").somefunc() -

<script type="text/javascript"> 
var jQuery_1_3_2 = $.noConflict(true); 
</script> 

2.然后,在插件调用部分

<link rel="stylesheet" type="text/css" href="/css/chosen.css"/> 
<!-- <script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.min.js"></script> --> 
<script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.js"></script> 
<script type="text/javascript"> 
jQuery_1_4(document).ready(function() 
{ 
    jQuery_1_4("select#user_id").chosen(); //Trying to call chosen on the newer version of jquery 
}); 
</script> 

但我收到此错误jQuery_1_4("select#user_id").chosen is not a function

但是,这是正常工作 - alert("see"+jQuery_1_4("select#user_id").attr("id"));

所以,这个问题似乎只是在使用插件,可能我必须做一些调整内插入代码,可能会取代一些$ s与jQuery_1_4?但这听起来不太好,我不确定什么是正确的方法。

回答

0

的第二个版本,如果你要保持你的旧版本,默认情况下,你应该在加载旧版本后立即做var jQuery = $.noConflict(true);。但是,您仍然需要检查您的$("something").somefunc()来电

+0

谢谢。看来应该首先包含更新的版本,如http://web.enavu.com/daily-tip/using-multiple-versions-of-jquery-on-the-same-page/中给出的那样。我只需要在插件文件中编辑一行 - “$ = jQuery;”到'$ = jQuery_1_4;'。我想我所有以前的jquery都能正常工作。我随机抽查了一些,他们正在工作。 – 2012-02-06 11:28:57

0

调用noConflict()之前包括jQuery的