javascript - 为什么我们必须在 jQuery 中使用 $.noConflict() ?

标签 javascript jquery clientscript

我知道我们正在使用 $.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/

相关文章:

javascript - Alpaca 表单提交,保持在同一页面

javascript - 函数作为第二个参数传递给链接函数的目的是什么

javascript - JQuery 通过部分标记名查找元素

jquery picklist : once deselect an item, 无法再选择

javascript - jQuery UI Portlet 问题(无法单击输入框)

javascript - 使用自定义样式从过滤器中去除 HTML 标签

c# - 在页面上注册/引用之前以编程方式修改嵌入式资源

javascript - 为什么 jQuery 中的 every 不迭代列表中的所有值

javascript - ClientScript.RegisterStartupScript 不工作

javascript - 使用 ClientScript 类将 VB.net 数组传递给 javascript