我有以下代码,
<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,这是旧版本。有人能帮忙吗?
由于
答案 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);
我希望这会有所帮助。