我继承了这样开头的脚本:
var $j = jQuery.noConflict();
但我不知道为什么要这样做。我知道我们正试图解决冲突,但我怎样才能找到它试图解决的冲突?
如果我们无法发现实际冲突,我们会计划恢复为 $
,而不是 $j
并查看是否出现任何冲突。
答案 0 :(得分:2)
根据jQuery docs
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果你需要在jQuery旁边使用另一个JavaScript库,那么通过调用$ .noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。
如果由于某种原因加载了两个版本的jQuery(事实并非如此) 推荐),从第二个版本调用$ .noConflict(true) 将全局范围的jQuery变量返回到第一个变量 版本
以下是另一个可以解释得非常好的link个文档
简单来说就是
var $j = jQuery.noConflict();
之后我们进入没有冲突模式,所以我们现在可以使用$ j而不是$或jQuery,并且该代码不会与使用$或jQuery的Jquery或库的先前版本冲突
答案 1 :(得分:1)
我们使用Jquery.noConflict
的主要原因是当其他javascript库使用" $
"用于选择器/功能/变量。
如果您需要找到冲突发生的确切位置,只需运行代码而不需要Jquery.noConflict,并检查例外结果是否也会出现在开发人员选项卡的控制台窗口中。
一如既往,文档是关键 - https://api.jquery.com/jquery.noconflict/
答案 2 :(得分:1)
$
是jQuery
使用的别名。如果在您的应用程序中出现了将$
用于其他目的的情况,那么您需要使用其他一些非冲突变量来防止冲突。
此外,可能还有另一种情况,即在您的应用程序或应用程序中的模块中使用多个版本的jQuery
,这将导致冲突。因此,您需要使用jQuery.noConflict();
。