如何避免两个版本的Jquery库之间发生冲突?

时间:2013-03-19 11:38:58

标签: jquery jquery-plugins struts2-jquery

在jsp页面中,我使用的是struts2-jquery-plugin-3.2.1.jar(它使用内部jquery-1.6.4.js),我正在使用facebox(它使用jquery-1.4.3.min.js )。所以我的struts2-jquery-plugin-3.2.1.jar首先加载facebox jquery。但当我把jquery-1.4.3.min.js我的struts2-jquery-plugin-3.2.1.jar停止工作时,当我删除jquery-1.4.3.min.js时,我的facebox显然停止工作。我关注这些论坛:herehere但是无法解决这个问题。一个人建议我使用struts2-jquery-plugin的新版本,但我不能使用因为如果我使用新的struts2-jquery-plugin的版本然后我的项目的一些代码停止工作。请分享您对此问题的了解。

2 个答案:

答案 0 :(得分:5)

您需要使用jQueryNoConflict功能:http://api.jquery.com/jQuery.noConflict/

所以您的库需要定义如下:

<script src='jquery-1.3.2.js'></script>
<script>
var jq132 = jQuery.noConflict();
</script>

<script src='jquery-1.4.2.js'></script>
<script>
var jq142 = jQuery.noConflict();
</script>

然后您可以像这样使用它们:

jq132.ajax(....);
jq142('#my-elem').hide();

答案 1 :(得分:0)

只需使用最新的jQuery(在你的情况下为1.6.4.js)它就可以了。不要更新到1.9,因为它包含多个重大更改。

如果删除jquery-1.4.3,没有理由说facebox应该停止工作。 1.4中包含的所有弃用方法都包含在1.6中。

检查控制台是否有错误。