问答详情
源自:1-8 jQuery多库共存处理

关于“并且在导入另一个导致冲突的库之前使用” 的一点疑问

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'))另一个导致冲突的库之前使用”


提问者:hnull 2014-12-24 15:14

个回答

  • 艾伦Aaron
    2014-12-24 15:27:43
    已采纳

    我们先看看$.noConflict()方法

    在加载jquery的时候做了一个动作 _$ = window.$;  保存了当前的$的引用为_$, 因为此时可能上一个script脚本可能存在$的命名空间。所以在当前加载的时候就保存起来了


    我们调用的时候就干了一件事

    把当前的jquery的命名空间$ 替换成_$,达到了交换的目的,可能话没有表述清楚




  • hnull
    2014-12-24 15:36:56

    恩 这个交换的过程明白。