我们开发了一个页面,其中包含作为单独组件实现的大量功能。 jQuery本身只包含在页眉中一次。 但是每个组件都有完全相同的javascript代码:
j$ = jQuery.noConflict();
这些多次调用同一页面上的jquery的noconflict并将结果分配给同一个变量会产生一些问题(例如使用插件)吗?可以接受吗?我希望它可以作为单例工作,即始终返回对同一内部对象的引用,无论如何。 提前感谢您的帮助,伙计们!
答案 0 :(得分:1)
许多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);