亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

多個jQuery版本共存的處理方案

2019-11-20 12:54:50
字體:
來源:轉載
供稿:網友

如何在一個頁面上讓多個jQuery共存呢?比如jquery-1.5和jquery-1.11。

你可能會問,為什么需要在一個頁面上讓多個jQuery共存?直接引用最新版本的jQuery不行嗎?

答案是,不行。因為現實生活是非常殘酷的。舉個栗子:

現有網站已經引用了jQuery 1.5以及相關插件。如果直接將jQuery升級到最新版,這些插件就不工作了,除非你能把這些插件全部升級,或者等各個插件的作者發布支持最新版jQuery的版本。

現在,如果我們要基于jQuery開發新的插件或者寫JavaScript代碼,用新版本會比較省時省力。

但舊版本又絕對不能扔掉,怎么辦?

方法是通過jQuery的noConflict()來讓多版本共存。

當我們導入jQuery時,jQuery僅向window這個全局空間注入兩個變量:

復制代碼 代碼如下:

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

同時,jQuery內部保留舊的window.$和window.jQuery對象的引用。當我們調用:

復制代碼 代碼如下:

   var $jq = $.noConflict();

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

當我們調用:

復制代碼 代碼如下:

   var $jq = $.noConflict(true);

window.$和window.jQuery都被恢復了,一切看起來就像jQuery從未被導入過一樣,只不過可以通過變量$jq來使用jQuery。

所以,讓新舊版本共存的jQuery可以這樣實現:

復制代碼 代碼如下:

   <script src="jquery-1.5.js"></script>
   <script src="jquery-1.11.js"></script>
   <script>
      // 現在window.$和window.jQuery是1.11版本:
      console.log($().jquery); // => '1.11.0'
      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了。

至此,問題解決。

但是,引入兩個版本的jQuery后,頁面被搞得亂七八糟。如果有人看不懂代碼,把var $jq = jQuery.noConflict(true);刪掉了怎么辦?或者,把導入jQuery的兩行互換了位置,最后就得不到正確的jQuery版本。

最好的辦法是不改動頁面,直接引用我們編寫的新的js文件:

復制代碼 代碼如下:

   <script src="jquery-1.5.js"></script>
   <script src="myscript.js"></script>

這樣一來,我們就在myscript.js內部引用最新版jQuery,而頁面無論有沒有jQuery,有哪個版本的jQuery,我們都不關心。

開始編寫新的更好的解決方案。首先,把myscript.js的主體確定下來:

復制代碼 代碼如下:

   // myscript.js
   (function () {
      // BEGIN
      // TODO: javascript code here...
      // END
   })();

用匿名函數是個好習慣,不污染全局變量,同時杜絕外部代碼訪問。

下一步是直接把jQuery 1.11的代碼嵌進去:

復制代碼 代碼如下:

   // myscript.js
   (function () {
      // BEGIN
      /*! jQuery v1.11.1 */
      !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...
      var $ = jQuery.noConflict(true);
      // TODO: javascript code here...
      // END
   })();

嵌入的當然是壓縮后的代碼,一共3行,然后加一句:

復制代碼 代碼如下:

   var $ = jQuery.noConflict(true);

注意到$是一個局部變量,在后面的代碼中,可以隨時引用這個$,跟頁面上其他版本的jQuery全局變量$不是一個對象。

最后一步工作就是檢查jQuery的協議是否允許我們把jQuery源碼直接嵌入我們自己的JavaScript代碼。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产综合久久久久久久久| 日韩精品久久久久| 欧美成人网在线| 精品欧美一区二区三区| 欧美精品videossex88| 成人高清视频观看www| 日本精品视频在线播放| 亚洲精品国产欧美| 欧美乱妇高清无乱码| 九九热r在线视频精品| 亚洲新中文字幕| 亲子乱一区二区三区电影| 韩国美女主播一区| 国产精品欧美亚洲777777| 国产精品人人做人人爽| 欧美日韩视频在线| 国产99久久精品一区二区| 欧美国产视频一区二区| 久久97精品久久久久久久不卡| 亚洲人成伊人成综合网久久久| 国产午夜精品视频免费不卡69堂| 国产精品成人av在线| 国产精品美女av| 国产精品精品国产| 国产精品www网站| 亚洲国产成人在线视频| 97在线视频一区| 一区二区三区国产在线观看| 欧美成人精品一区| 欧美日韩在线看| 91超碰中文字幕久久精品| 亚洲日本欧美中文幕| 亚洲视频在线观看免费| 性日韩欧美在线视频| 日韩免费av片在线观看| 欧美一级片久久久久久久| 欧美日韩亚洲激情| 久久久天堂国产精品女人| 国产亚洲精品久久久久久777| 国产999精品久久久影片官网| 亚洲国语精品自产拍在线观看| 久久久国产视频| 亚洲男人天堂九九视频| 日韩av在线精品| 成人午夜一级二级三级| 亚洲国产一区二区三区在线观看| 亚洲国产91色在线| 亚洲网在线观看| 久久久久久亚洲| 97视频在线播放| 欧洲s码亚洲m码精品一区| 精品国偷自产在线视频| 97精品国产97久久久久久| 欧美日本在线视频中文字字幕| 亚洲精品suv精品一区二区| 欧美黑人视频一区| 日韩精品高清视频| 国内免费精品永久在线视频| 久久九九有精品国产23| 亚洲色图综合网| 亚洲美女黄色片| 欧美电影免费观看高清完整| 亚洲成人xxx| 国产成人在线精品| 欧美精品制服第一页| 91av在线免费观看| 成人情趣片在线观看免费| 欧美一区亚洲一区| 九九精品视频在线| 亚洲区bt下载| 国产精品美女主播| 日韩av免费在线看| www.久久草.com| 57pao国产成人免费| 欧美日韩国产精品一区二区三区四区| 5566成人精品视频免费| 国产999精品| 亚洲日本aⅴ片在线观看香蕉| 亚洲高清色综合| 国产美女精品视频| 成人免费在线视频网站| 欧美日韩亚洲精品内裤| 亚洲一区制服诱惑| 国产脚交av在线一区二区| 国产一区二区三区中文| 国产日韩欧美在线视频观看| 中文字幕精品—区二区| 国产亚洲成av人片在线观看桃| 日韩电影免费观看在线观看| 亚洲永久在线观看| 久久久久久这里只有精品| 成人黄色免费在线观看| 91精品视频大全| 成人免费在线视频网站| 欧美激情区在线播放| 97av在线视频| 青草热久免费精品视频| 国产欧美日韩专区发布| 97视频在线观看视频免费视频| 成人免费激情视频| 国产高清在线不卡| 国内精品小视频| 日韩中文av在线| 日韩精品免费在线观看| 日本精品一区二区三区在线| 国产精品丝袜视频| 久热精品视频在线| 久久久91精品国产一区不卡| 神马久久久久久| 亚洲国产成人久久综合| 韩剧1988免费观看全集| 91精品久久久久久久久不口人| 欧美成人精品一区二区三区| 国产精品欧美风情| 久久夜精品va视频免费观看| 久久久久久一区二区三区| 北条麻妃99精品青青久久| 91精品久久久久久久久久入口| 欧美日韩在线视频首页| 粗暴蹂躏中文一区二区三区| 欧美日韩免费观看中文| 国产精品一区二区久久国产| 欧美激情日韩图片| 亚洲色图18p| 亚洲色图偷窥自拍| 国产亚洲激情在线| 亚洲精品国精品久久99热| 亚洲天堂网站在线观看视频| 亚洲天堂网站在线观看视频| 欧美精品在线第一页| 欧美久久精品午夜青青大伊人| 全亚洲最色的网站在线观看| 欧美日韩激情小视频| 九九热这里只有在线精品视| www.亚洲男人天堂| 欧美一级黑人aaaaaaa做受| 欧美伦理91i| 欧美性xxxxx极品| 国产精品香蕉av| 日本高清视频精品| 日韩在线观看视频免费| 久久夜色精品国产亚洲aⅴ| 久久久久在线观看| 欧美天天综合色影久久精品| 日韩欧美国产视频| 亚洲女人天堂网| 69视频在线免费观看| 日韩av电影在线播放| 精品亚洲va在线va天堂资源站| 欧美情侣性视频| 精品少妇v888av| 久久这里有精品| 成人两性免费视频| 国产中文字幕亚洲| 亚洲高清色综合| 91免费版网站入口| 日韩三级成人av网| 国产精品99久久久久久久久| 亚洲一区二区中文| 欧美裸体男粗大视频在线观看| 日本成人激情视频| 日韩高清免费观看| 欧美综合在线第二页| 中文字幕欧美日韩va免费视频|