在同一页面上多次调用jQuery.noConflict()

时间:2015-06-22 19:10:31

标签: javascript jquery

我们开发了一个页面,其中包含作为单独组件实现的大量功能。 jQuery本身只包含在页眉中一次。 但是每个组件都有完全相同的javascript代码:

j$ = jQuery.noConflict();

这些多次调用同一页面上的jquery的noconflict并将结果分配给同一个变量会产生一些问题(例如使用插件)吗?可以接受吗?我希望它可以作为单例工作,即始终返回对同一内部对象的引用,无论如何。 提前感谢您的帮助,伙计们!

1 个答案:

答案 0 :(得分:1)

jQuery.noConflict()

  

许多JavaScript库只使用$作为函数或变量名   就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,所以   无需使用$即可使用所有功能。如果你需要使用   与jQuery一起使用的另一个JavaScript库,返回$ back的控件   通过调用$ .noConflict()到另一个库。旧的参考文献   在jQuery初始化期间保存$; noConflict()只是简单地恢复   它们。

在你的情况下,多次调用应该没有坏处,因为它是幂等函数。

如果您打算在未知环境中包含此类组件,可以在继续操作之前调用它。

考虑使用self-executing anonymous function将其绑定到您的上下文:

(function($){
  // here $ will be the global, common jQuery object you passed as an argument
})(jQuery);