jQuery - noConflict() 方法


如果您希望在页面上使用其他框架,同时仍使用 jQuery,该怎么办?


jQuery 和其他 JavaScript 框架

就像你已经知道的那样; jQuery 使用$签名作为 jQuery 的快捷方式。

还有许多其他流行的 JavaScript 框架,例如:Angular、Backbone、Ember、Knockout 等。

如果其他 JavaScript 框架也使用 $ 符号作为快捷方式怎么办?

如果两个不同的框架使用相同的快捷方式,其中之一可能会停止工作。

jQuery 团队已经考虑到了这一点,并实现了noConflict()方法。


jQuery noConflict() 方法

这个noConflict()方法释放对 $ 快捷方式标识符的保留,以便其他脚本可以使用它。

当然,您仍然可以使用 jQuery,只需编写全名而不是快捷方式即可:

示例

$.noConflict();
jQuery(document).ready(function(){
  jQuery("button").click(function(){
    jQuery("p").text("jQuery is still working!");
  });
});
亲自试一试 »

您还可以非常轻松地创建自己的快捷方式。这noConflict()方法返回对 jQuery 的引用,您可以将其保存在变量中以供以后使用。这是一个例子:

示例

var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery is still working!");
  });
});
亲自试一试 »

如果你有一个 jQuery 代码块,它使用$如果您不想更改所有快捷方式,则可以通过$登录作为 Ready 方法的参数。这允许您使用以下方式访问 jQuery$,在此函数内部 - 在其外部,您必须使用 "jQuery":

示例

$.noConflict();
jQuery(document).ready(function($){
  $("button").click(function(){
    $("p").text("jQuery is still working!");
  });
});
亲自试一试 »

jQuery 杂项参考

有关所有 jQuery Misc 方法的完整概述,请访问我们的jQuery 杂项参考