0

我在我的项目中使用外部 Jquery 插件。在插件中,他们使用 jquery-1.3.2.js。对于我的功能,我正在使用库 jquery/1.10.2/jquery.min.js。

问题是,如果我注释掉 jquery-1.3.2,插件的某些功能不起作用。如果我同时拥有两个库 Jquery on 方法不起作用。

// This will not work if we have both the libraries.

$(document.body).on('click', '.productWrap', function(){
    alert ("reaching here");
});

我不知道插件的什么功能正在使用 jQuery-1.3.2。

如何解决这个问题,使插件和 on 方法都可以完美运行,而无需对代码进行任何重大更改。

4

2 回答 2

2

是的,这是可能的;只需使用$.noConflict(true);

<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>

<!-- load jQuery 1.10.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
var jQuery_1_10_2 = $.noConflict(true);
</script>

例子:

代替

$('#selector').function();

你会的

jQuery_1_3_2('#selector').function();

或者

jQuery_1_10_2('#selector').function();.

于 2013-11-14T12:59:03.397 回答
1

您可以使用 jquery.noConflict 执行此操作 - http://api.jquery.com/jQuery.noConflict/

包括 jQuery 的 1.3.2 版本。

然后包括 1.10.2 版本的 jQuery。

然后做,

var j = jQuery.noConflict();

此后,无论您在脚本中的何处使用 $,都必须使用 j。例如:$("#id1") => j("#id1")

于 2013-11-14T13:02:29.983 回答