处理jQuery.noConflict

时间:2018-01-08 07:29:15

标签: javascript jquery

我继承了这样开头的脚本:

var $j = jQuery.noConflict();

但我不知道为什么要这样做。我知道我们正试图解决冲突,但我怎样才能找到它试图解决的冲突?

如果我们无法发现实际冲突,我们会计划恢复为 $ ,而不是 $j 并查看是否出现任何冲突。

3 个答案:

答案 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();

来避免冲突

您可以在jQuery.noConflict

上详细了解相关信息