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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 16:17:03
字體:
來源:轉載
供稿:網友
本文給大家分享的是一個經常需要碰到的問題的解決方案,如何才能讓一個頁面中同時存在多個jQuery呢,這就是今天我們需要探討的話題了。
 

如何在一個頁面上讓多個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
亚洲成人av中文字幕| 国产va免费精品高清在线观看| 亚洲国模精品私拍| 综合久久五月天| 欧美大码xxxx| 黑人巨大精品欧美一区二区三区| 亚洲欧美日韩中文视频| 91日韩在线视频| 亚洲高清免费观看高清完整版| 中文字幕在线看视频国产欧美| 国产丝袜一区视频在线观看| 欧美香蕉大胸在线视频观看| 国产精品美女久久久久av超清| 欧美激情视频在线免费观看 欧美视频免费一| 欧美伊久线香蕉线新在线| 992tv在线成人免费观看| 欧美激情视频网址| 国产精品91久久久久久| 在线国产精品视频| 91夜夜未满十八勿入爽爽影院| 91精品国产91久久久久久最新| 久久久久久成人精品| 久久久久久久久国产精品| 国产精品午夜视频| 国产精品精品视频| 91在线网站视频| 亚洲aa中文字幕| 中文字幕亚洲一区在线观看| 1769国内精品视频在线播放| 色综合天天综合网国产成人网| 国产a∨精品一区二区三区不卡| 欧美日韩国产成人| 国产精品久久久久久久7电影| 狠狠色狠狠色综合日日五| 日本久久中文字幕| 欧美久久精品午夜青青大伊人| 九色精品免费永久在线| 日韩大片在线观看视频| 国产一区二区在线免费视频| 日韩av在线电影网| 日韩在线观看av| 97人人做人人爱| 欧美精品激情在线| 美女扒开尿口让男人操亚洲视频网站| 国产精品wwww| 亚洲天堂av在线播放| 亚洲高清在线观看| 日韩av手机在线观看| 久久精品最新地址| 日韩成人中文字幕在线观看| 欧美大奶子在线| 日韩国产精品亚洲а∨天堂免| 日韩成人中文字幕在线观看| 国产91九色视频| 在线观看日韩av| 亚洲在线视频观看| 亚洲热线99精品视频| 成人久久久久久久| 精品日韩美女的视频高清| 国产亚洲美女精品久久久| 欧美日韩国产一区中文午夜| 97色在线观看| 日韩av有码在线| 欧美理论在线观看| 亚洲精品第一国产综合精品| 久久久久久久国产| 一本一本久久a久久精品牛牛影视| 欧洲亚洲在线视频| 91久久在线视频| 亚洲激情久久久| xxxx欧美18另类的高清| 日韩一区在线视频| 主播福利视频一区| www.久久色.com| 91精品视频在线播放| 日韩欧美一区二区在线| 欧美成人合集magnet| 欧美激情女人20p| 日本国产欧美一区二区三区| 国产98色在线| 欧美黑人一区二区三区| 亚洲毛茸茸少妇高潮呻吟| 精品久久久免费| 69av成年福利视频| 国产一区二区三区日韩欧美| 国产一区私人高清影院| 日日狠狠久久偷偷四色综合免费| 日本精品视频在线观看| 亚洲一区二区三区在线视频| 欧美成人sm免费视频| 国产精品久久久久久久久久ktv| 久久精品国产2020观看福利| 亚洲色图13p| 亚洲精品在线观看www| 最近免费中文字幕视频2019| 国产精品久久久久77777| 91在线观看免费| 91禁外国网站| 久久中文精品视频| 国产精品色婷婷视频| 在线a欧美视频| 日韩视频第一页| 亚洲精品综合久久中文字幕| 欧美日韩日本国产| 国产精品亚洲自拍| 国产精品精品视频一区二区三区| 日本精品视频在线观看| 国产午夜精品视频免费不卡69堂| 永久免费精品影视网站| 欧美极品第一页| 久久久久国产视频| 菠萝蜜影院一区二区免费| 亚洲最新中文字幕| 中文字幕无线精品亚洲乱码一区| 欧美性极品少妇精品网站| 久久久久久亚洲| 一区二区三区黄色| 2019中文字幕在线| 久久99亚洲精品| 中文字幕av一区二区三区谷原希美| 亚洲级视频在线观看免费1级| 日韩视频亚洲视频| 日韩精品高清在线| 亚洲欧美激情精品一区二区| 亚洲精品国产精品国产自| 欧美日韩ab片| 欧美性一区二区三区| 久久精品国产v日韩v亚洲| 精品国产91久久久| 久久精品视频导航| 91精品国产自产在线观看永久| 久久精品免费播放| 一区二区三区美女xx视频| 69久久夜色精品国产7777| 国产精品三级美女白浆呻吟| 亚洲va欧美va在线观看| 欧美一级视频免费在线观看| 国产成人免费av电影| 黑人狂躁日本妞一区二区三区| 日韩在线观看免费全集电视剧网站| 欧美一级大片视频| 亚洲а∨天堂久久精品9966| 国模吧一区二区三区| 91成人在线观看国产| 日本精品在线视频| 日韩欧美视频一区二区三区| 欧美最猛性xxxx| 色偷偷91综合久久噜噜| 亚洲情综合五月天| 亚洲第一免费网站| 国产亚洲一区二区在线| 欧美性20hd另类| 国产99视频精品免视看7| 欧美成人午夜视频| 欧美日韩国产激情| 91在线观看欧美日韩| 亚洲爱爱爱爱爱| 神马久久桃色视频| 精品久久久一区二区| 日韩精品极品毛片系列视频| 久操成人在线视频| 91精品国产综合久久久久久久久| 精品美女永久免费视频| 国产精品久久久999|