JQuery noConflict运行两个版本

时间:2014-05-17 13:41:02

标签: javascript jquery html

我有以下代码,

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js" type="text/javascript">
alert($().jquery); // Version 2.1.0
jQuery.noConflict();
alert($().jquery); // Previous version
</script>

我想使用第二个版本做一些事情,然后将$变量返回到第一个版本,因此现有的jQuery函数仍然有用。但是当我运行它时,$().jquery返回版本1.3.2,这是旧版本。有人能帮忙吗?

由于

1 个答案:

答案 0 :(得分:1)

正如jQuery API所说,

如果由于某种原因加载了两个版本的jQuery(jQuery API不推荐), 从第二个版本调用$ .noConflict(true)将返回全局范围的jQuery变量到第一个版本的变量。

<script src="other_lib.js"></script>
<script src="jquery.js"></script>

<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>

这种技术与.ready()方法对jQuery对象进行别名的能力特别有效,因为在传递给.ready()的回调中,如果你愿意,你可以使用$而不用担心以后的冲突:

<script src="other_lib.js"></script>
<script src="jquery.js"></script>

<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>

在一个项目中,我将其用作

var j = jQuery.noConflict();
// Do something with jQuery
j( "div p" ).hide();

也喜欢这个

jQuery.noConflict();
  (function( $ ) {
    $(function() {
    // More code using $ as alias to jQuery
   });
})(jQuery);

我希望这会有所帮助。