多个jQuery版本如何共存

本文介绍了如何通过jQuery的noConflict()方法实现不同版本的jQuery在同一页面上共存。通过设置true参数,可以完全释放$和jQuery全局变量,然后通过变量引用特定版本的jQuery。在实际开发中,可以在特殊版本的JS文件中引入jQuery并使用noConflict(true),以恢复全局变量,并在自定义作用域内使用所需版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过jQuery的noConflict()来让多版本共存。

当我们导入jQuery时,jQuery仅向window这个全局空间注入两个变量:

window.$ = window.jQuery = { jQuery object };

同时,jQuery内部保留旧的window.$和window.jQuery对象的引用。

 

1、当我们调用:var $jq = $.noConflict();

     window.$被恢复,但window.jQuery仍是jQuery。

 

2、当我们调用:var $jq = $.noConflict(true);

      window.$和window.jQuery都被恢复了,一切看起来就像jQuery从未被导入过一样,只不过可以通过变量$jq来使用jQuery。

 

3、不同版本共存的jQuery可以这样实现,列个简单的例子:
   <script src="jquery-1.5.js"></script>
   <script src="jquery-1.11.js"></script>
   <script>
      console.log($().jquery); // => '1.11.0';// 现在window.$和window.jQuery是1.11版本:
      var $jq = jQuery.noConflict(true);        // 现在window.$和window.jQuery被恢复成1.5版本:
      console.log($().jquery); // => '1.5.0'    // 可以通过$jq访问1.11版本的jQuery了
   </script>
   <script src="myscript.js"></script>

   这样,在myscript.js中,用$jq就可以访问1.11版本的jQuery了。

4、一般开发中,在需要引入特殊版本的js文件中引入jq文件,在代码段后面添加var $jq = jQuery.noConflict(true); 恢复为正常版本的jq,例如:

// myscript.js
   (function () {
      // BEGIN
      /*! jQuery v1.11.1-start */
      !function(a,b){"object"==typeof module&&"object"==typeof module.exports?...
      if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=...
      },cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(thi...

      /*! jQuery v1.11.1-end*/
      var $ = jQuery.noConflict(true);
      // TODO: javascript code here...
      // END
   })();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值