jquery $如何在没有冲突的情况下工作?

时间:2014-09-16 17:36:47

标签: javascript jquery

在jQuery doc中我们有这样的代码:

<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
  // Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>

我想知道这是如何工作的,为什么像other_lib.js这样使用jQuery&#39; $的lib工作在$.noConflict();之后。它们不应该起作用,因为全局变量$已从全局范围中删除。 谢谢。

1 个答案:

答案 0 :(得分:3)

它不仅仅是在noConflict调用之后才能工作,更重要的是如果你看一下它正在接受一个名为$的变量的文档就绪函数,当它调用这个函数传入时,jquery正在做什么命名为jQuery对象,在该函数的本地范围内变为$

在该函数之外调用$将无效。

我在过去使用一些自动执行的javascript手动完成了它,它遵循相同的模式:

(function($){
    ...some page startup code here...
})(jQuery)