使用jQuery.noConflict()使$可全局访问

时间:2011-06-25 作者:Ian Dunn

法典promotes 此使用方法$ 在插件/主题JavaScript文件中:

jQuery(document).ready(function($) {
    // $() will work as an alias for jQuery() inside of this function
});
但如果你这样做,你只能访问$ 内部就绪()。我认为函数应该被分解成从ready()调用的小模块,而不是全部集中在ready()中,因此如果我使用Codex的方法,那么我必须将$传递给每个函数,这既烦人又粗糙。写出jQuery 不只是使用$ 也很烦人。

我可以这么做$ = jQuery.noConflict(); 在JavaScript文件的开头,然后$ 无处不在,但我怀疑这可能会在某些情况下导致其他插件/主题出现问题。我的搜索没有找到任何彻底的解释或明确的答案。有人有什么想法吗?

2 个回复
最合适的回答,由SO网友:onetrickpony 整理而成

你不需要$ = jQuery.noConflict();

只需包装文档外的所有函数。ready()位于:

(function($){  
  // use $ here safely
})(jQuery);

SO网友:Johnnatan

希望这个答案能帮助别人

输入此代码:

 $ = jQuery.noConflict(true);
之前:

 $(document).ready(function($){ ... });

结束