我知道我们正在使用 $.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
是否已被使用。无论哪种方式,它都会返回 jQuery。所以你不能只做 var $j=$;
因为 $
可能已经有冲突。 noConflict()
正是您所需要的。
关于javascript - 为什么我们必须在 jQuery 中使用 $.noConflict() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46520075/