无需将(jQuery) 更改为(jQuery.noConflict()),只要在该点之前(并且在包含JQuery 库之后)调用jQuery.noConflict()。
如您所知,当您在无冲突模式下使用 jQuery 时,您应该使用jQuery 而不是$。
但您可以在放置在立即调用的函数表达式 (IIFE) 内的代码中使用 $ 而不是 jQuery,如下所示:
(function($) {
// Code here can use $, instead of jQuery.
})(jQuery);
IIFE 是您定义匿名函数并立即调用它的地方。在上面的代码中,jQuery 对象作为参数传递给匿名函数,由于参数名为$,$ 代表函数内部的jQuery 对象。
此外,jQuery 对象作为第一个参数传递给文档就绪事件的回调函数,因此您可以执行以下操作:
jQuery(function($) {
// Code here can use $, instead of jQuery.
});
等同于:
jQuery(document).ready(function($) {
// Code here can use $, instead of jQuery.
});
请注意,在 IIFE 中使用 var 声明的变量不是全局变量。这通常是一件好事,也是使用 IIFE 的另一个原因。如果你确实想在 IIFE 中声明一个全局变量,你应该将它作为 window 对象的一个属性来引用。
<script type="text/javascript">
var a = 1; // This is a global variable.
(function($) {
var b = 2; // This is NOT a global variable.
window.c = 3; // This is a global variable.
})(jQuery);
<script>