aron 好
“这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用。” 以上课件的高亮句子, 这句话是不是有点不准确,
这边前半句话, 这个函数必须在你导入jQuery文件之后, 这个可以理解,导入jQuery后,才能使用$.noConflict().
我这边疑问是后半句话,“并且在导入另一个导致冲突的库之前使用”,这边应该可以在导入另一个导致冲突的库之后使用吧。
比如
<script type="text/javascript" src="other.js"></script>
<script type="text/javascript" src="jquery-2.0.3.js"></script>
<script type="text/javascript">
$.noConflict()
</script>
假设上面的other.js 也是使用的$,比jQ先导入,但是 $.noConflict() 这个执行后,不是可以把之前保存好的_$ 赋值给window.$ 吗?
这边是不是把“并且在导入另一个导致冲突的库之前使用。”改为 “并且在使用($('xxx'))另一个导致冲突的库之前使用”
我们先看看$.noConflict()方法
在加载jquery的时候做了一个动作 _$ = window.$; 保存了当前的$的引用为_$, 因为此时可能上一个script脚本可能存在$的命名空间。所以在当前加载的时候就保存起来了
我们调用的时候就干了一件事
把当前的jquery的命名空间$ 替换成_$,达到了交换的目的,可能话没有表述清楚
恩 这个交换的过程明白。