为什么我们必须在 jQuery 中使用 $.noConflict()?
Why we have to use $.noConflict() in jQuery?
我知道我们正在使用 $.noConflict() 来克服其他插件冲突。
例如,如果某些新插件使用 $ 符号作为变量,它将覆盖。所以,我们像下面这样使用
var $j=$.noConflict();
但是,我在这里有疑问,我们可以使用下面的代码本身将其存档然后为什么 $.noConflict();需要吗?
var $j=$;
提前致谢。请解释主要不同
在这里你得到了关于原因的详细信息:
Many JavaScript libraries use $ as a function or variable name, just
as jQuery does. In jQuery's case, $ is just an alias for jQuery, so
all functionality is available without using $. If you need to use
another JavaScript library alongside jQuery, return control of $ back
to the other library with a call to $.noConflict(). Old references of
$ are saved during jQuery initialization; noConflict() simply restores
them.
来自jQuery,还有更多信息:https://api.jquery.com/jquery.noconflict/
评论后更新
来自 jQuery 代码 https://code.jquery.com/jquery-1.10.2.js 如果你搜索 noConflict
你会找到
noConflict: function( deep ) {
if ( window.$ === jQuery ) {
window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
return jQuery;
},
简单来说:这会检查全局 $
或全局 jQuery
是否已被使用。无论哪种方式,它都会 return jQuery。所以你不能只做 var $j=$;
因为 $
可能已经有冲突了。 noConflict()
就是你所需要的。
如果您需要在 jQuery 旁边使用另一个 JavaScript 库,则 return 通过调用将 $ 的控制权交还给另一个库到 $.noConflict(). 此技术与 .ready() 方法的别名能力结合使用时特别有效 jQuery 对象,在传递给 .ready() 的回调中,如果您愿意,可以使用 $ 而不必担心以后发生冲突
以不同方式使用 noConflict 的示例
类型 01
var j = jQuery.noConflict();
// Do something with jQuery
j( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";
类型 02
jQuery.noConflict();
(function( $ ) {
$(function() {
// More code using $ as alias to jQuery
});
})(jQuery);
我知道我们正在使用 $.noConflict() 来克服其他插件冲突。 例如,如果某些新插件使用 $ 符号作为变量,它将覆盖。所以,我们像下面这样使用
var $j=$.noConflict();
但是,我在这里有疑问,我们可以使用下面的代码本身将其存档然后为什么 $.noConflict();需要吗?
var $j=$;
提前致谢。请解释主要不同
在这里你得到了关于原因的详细信息:
Many JavaScript libraries use $ as a function or variable name, just as jQuery does. In jQuery's case, $ is just an alias for jQuery, so all functionality is available without using $. If you need to use another JavaScript library alongside jQuery, return control of $ back to the other library with a call to $.noConflict(). Old references of $ are saved during jQuery initialization; noConflict() simply restores them.
来自jQuery,还有更多信息:https://api.jquery.com/jquery.noconflict/
评论后更新
来自 jQuery 代码 https://code.jquery.com/jquery-1.10.2.js 如果你搜索 noConflict
你会找到
noConflict: function( deep ) {
if ( window.$ === jQuery ) {
window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
return jQuery;
},
简单来说:这会检查全局 $
或全局 jQuery
是否已被使用。无论哪种方式,它都会 return jQuery。所以你不能只做 var $j=$;
因为 $
可能已经有冲突了。 noConflict()
就是你所需要的。
如果您需要在 jQuery 旁边使用另一个 JavaScript 库,则 return 通过调用将 $ 的控制权交还给另一个库到 $.noConflict(). 此技术与 .ready() 方法的别名能力结合使用时特别有效 jQuery 对象,在传递给 .ready() 的回调中,如果您愿意,可以使用 $ 而不必担心以后发生冲突
以不同方式使用 noConflict 的示例
类型 01 var j = jQuery.noConflict();
// Do something with jQuery
j( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";
类型 02
jQuery.noConflict();
(function( $ ) {
$(function() {
// More code using $ as alias to jQuery
});
})(jQuery);