我想在一个页面上使用两个版本的jquery但是怎么样?在这里我想用下面的脚本和jquery-1.3.2.min.j与另一个
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="jquery-1.8.1.min.js"></script>
<script>
$(document).ready (function(){
$('.following').hover(function(){
$(this).text("Unfollow");
},function(){
$(this).text("Following");
});
$('.following').click(function(){
$(this).toggleClass('following follow').unbind("hover");
if($(this).is('.follow')){
$(this).text("Follow");
}
else{
$(this).bind({
mouseleave:function(){$(this).text("Following");},
mouseenter:function(){$(this).text("Unfollow");}
});
}
});
});
</script>
答案 0 :(得分:1)
如果可能,您应该重写脚本以使用相同版本的jQuery。您显示的代码不是很复杂,应该可以轻松地重写。
无论如何,使用noConflict
method,您可以使用两个版本的jQuery。您需要将其中一个脚本放在$
标识符引用新版本的范围内。通过调用$.noClonflict(true)
jQuery将恢复加载的第一个版本并返回对加载的第二个版本的引用:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="jquery-1.8.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
(function($){
// in here $ is the 1.8.1 version
$(document).ready (function(){
$('.following').hover(function(){
$(this).text("Unfollow");
},function(){
$(this).text("Following");
});
$('.following').click(function(){
$(this).toggleClass('following follow').unbind("hover");
if($(this).is('.follow')){
$(this).text("Follow");
} else{
$(this).bind({
mouseleave:function(){$(this).text("Following");},
mouseenter:function(){$(this).text("Unfollow");}
});
}
});
});
}($.noConflict(true)));
// from here on $ is the 1.3.2 version
</script>
如果您想继续引用第二个版本:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="jquery-1.8.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var $$ = $.noConflict(true);
// from here on $ is the 1.3.2 version and $$ is the 1.8.1 version
(function($){
// in here $ is the 1.8.1 version
}($$));
</script>
答案 1 :(得分:0)
是的,由于jQuery的noconflict模式,这是可行的。 http://blog.nemikor.com/2009/10/03/using-multiple-versions-of-jquery/
答案 2 :(得分:0)
我不建议使用noConflict()。如果你看一下jQuery源代码,它并不是真的意味着这种事情。我推荐以下内容:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">var jQueryOld = $old = jQuery</script>
<script type="text/javascript" src="jquery-1.8.1.min.js"></script>
noConflict()的jQuery源代码
jQuery.noConflict = function( deep ) {
if ( window.$ === jQuery ) {
window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
return jQuery;
};
基本上,一旦完成所有操作,你仍然会得到两个名为jQuery的对象。另外,要与jQuery一起使用,你必须说jQuery.noConflict(true),如果你阅读文档:
“如果由于某种原因加载了两个版本的jQuery(不推荐),从第二个版本调用$ .noConflict(true)将返回全局范围的jQuery变量到第一个版本的那些。”