在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();
之后。它们不应该起作用,因为全局变量$
已从全局范围中删除。
谢谢。
答案 0 :(得分:3)
它不仅仅是在noConflict调用之后才能工作,更重要的是如果你看一下它正在接受一个名为$
的变量的文档就绪函数,当它调用这个函数传入时,jquery正在做什么命名为jQuery对象,在该函数的本地范围内变为$
。
在该函数之外调用$将无效。
我在过去使用一些自动执行的javascript手动完成了它,它遵循相同的模式:
(function($){
...some page startup code here...
})(jQuery)