2012-03-07 78 views

回答

4

默认情况下,jQuery使用“$”作为“jQuery”的快捷方式。但是,您可以通过在jQuery和其他库都加载后的任何时刻调用jQuery.noConflict()来覆盖该默认值。例如:

<html> 
<head> 
    <script src="prototype.js"></script> 
    <script src="jquery.js"></script> 
    <script> 
    jQuery.noConflict(); 

    // Use jQuery via jQuery(...) 
    jQuery(document).ready(function(){ 
     jQuery("div").hide(); 
    }); 

    // Use Prototype with $(...), etc. 
    $('someid').hide(); 
    </script> 
</head> 
<body></body> 
</html> 

看到http://docs.jquery.com/Using_jQuery_with_Other_Libraries

1

到Elementenfresser的答案类似,我建议使用jQuery.noConflict的顶部();你可以用一个匿名函数包装整个jQuery代码,保持所有jQuery代码完整无需将所有“$”改为“jQuery”。

jQuery.noConflict(); 
    (function($){ 
    $("div").hide(); //will use jQuery 
    })(jQuery); 

$("div").hide(); //will use prototype 
jQuery("div").hide(); //will use jQuery again. 

你可以将所有使用jQuery的javascript文件封装到匿名函数中。你根本不需要把$改成jQuery。这也是一个性能改进,因为在函数中声明的所有变量都不会附加到全局范围 - 使您的应用程序更快。

2

除了使用.noConflict()的方法,你也可以范围你的jQuery代码。

<script> 
(function($) { 
//write your jQuery code here. 

})(jQuery); 
</script> 
2
如果你希望能够使用一些速记

,做

var j$ = jQuery.noConflict(); 

现在你可以使用Ĵ$,而不是$的jQuery