91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery中$符號的沖突問題怎么解決

發布時間:2021-08-10 11:01:31 來源:億速云 閱讀:175 作者:chen 欄目:開發技術

本篇內容主要講解“jQuery中$符號的沖突問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“jQuery中$符號的沖突問題怎么解決”吧!

  在jQuery中,$是jQuery的別名,為了書寫方便,我們更習慣用$('#id')這一類的方式來書寫代碼。當同一頁面引用了jQuery多個版本或者jQuery與某些其他js庫產生沖突,控制臺就會報錯。

  1.同一個頁面多個版本沖突解決辦法

  你可能會問,為什么在一個頁面上會引用多個版本的jQuery,只引用一個不就好了嗎?

  答案是:不行。一般要用到兩個(或以上)版本的jQuery庫的原因是:現有的網站已經用了舊版本的jQuery以及相關插件,直接將jQuery升級到新版本會導致這些基于舊版本jQuery的插件不能工作,除非你能把這些插件全部升級,或者等各個插件的作者發布支持新版本jQuery的插件版本。

  解決辦法:使用jQuery.noConflict([extreme])方法。

  比如我引用的是jquery-1.11.0.js和jquery-1.5.0.js。

  < script src="jquery-1.5.0.js">< /script>

  < script src="jquery-1.11.0.js">< /script>

  < script>

  console.log($.fn.jquery); //'1.11.0'

  var $jq = jQuery.noConflict(true);

  console.log($.fn.jquery); //'1.5.0'

  < /script>

  可以看到jQuery.noConflict將變量 $ 的控制權讓渡給了1.5.0版本的jQuery庫。而要使用1.11.0的版本則要用 $jq() 代替。

  但是引入了兩個版本的jQuery后,代碼很亂,導致別人難以理解甚至誤刪了一些重要代碼怎么辦?

  改進的方法是:

  先直接引用新版的jQuery庫。

  < script src="jquery-1.11.0.js">< /script>

  < script src="myJS.js">< /script>

  把我們寫的腳本myJS.js中的主體內容寫在立即調用函數里頭,引用的是新的版本的jQuery。

  //myJS.js

  (function() {

  //myJS.js的代碼,引用的是v1.11.0

  })();

  再寫一個立即調用函數,把舊版本的jQuery代碼嵌進去(壓縮代碼只有幾行)。然后在里面寫代碼,此時變量$所引用的前面嵌進去的jQuery。

  //myJS.js

  (function () {

  //...此處省略/jquery1.5.0

  //jquery1.5.0的壓縮代碼

  var $ = jQuery.noConflict(true);

  //此處開始寫的$()所引用的是jquery1.5.0

  })();

  Ps:需要檢查jQuery的協議是否允許我們把jQuery源碼直接嵌入我們自己的JavaScript代碼

  2. 同一頁面jQuery和其他js庫沖突解決方法

  ①依然可以使用jQuery.noConflict將變量$的控制權讓渡給其他js庫。

  如果jQuery在其他js庫前,不需要使用noConflict。

  < !-- 引入 jquery庫 -->

  < script src="jquery-1.11.0.js">< /script>

  < script type="text/javascript">

  var $jq = $;

  console.log($.fn.jquery); //'1.11.0'

  < /script>

  < !-- 引入 其他庫-->

  < script type="text/javascript">

  $ = {

  fn:{

  jquery:"otherJS"

  }

  };

  < /script>

  < script type="text/javascript">

  console.log($.fn.jquery); //otherJS

  console.log($jq.fn.jquery); //'1.11.0'

  < /script>

  如果在其他js庫之后,用noConflict讓渡。

  < !-- 引入 其他庫-->

  < script type="text/javascript">

  $ = {

  fn:{

  jquery:"otherJS"

  }

  };

  < /script>

  < !-- 引入 jquery庫 -->

  < script src="jquery-1.11.0.js">< /script>

  < script type="text/javascript">

  console.log($.fn.jquery); //'1.11.0'

  var $180 = $.noConflict(); //解除沖突

  console.log($.fn.jquery); //otherJS

  console.log($jq.fn.jquery); //'1.11.0'

  < /script>

  它的缺點是:在接下來的js代碼中只要引用到jQuery就必須把$換成$jq。

  ②ready函數是jquery的入口函數

  可以將

  $(document).ready(function() {...})

  替換成:

  jQuery(document).ready(function($) {...})

  它的缺點是:只對ready嵌套內的代碼有效,如果ready函數外還有一些子函數,對嵌套外的代碼是無效的。

  ③把$作為參數傳進去

  (function($) {

  //你的js代碼

  })(jQuery);

  或者

  jQuery(function($){

  //你的js代碼

  }

  你的js代碼可以包括上面說到的ready函數和子函數。在用jQuery寫公共組件的時候,使用這種方式既能避免$沖突,又無需要求使用公共組件的人修改自己的代碼。

到此,相信大家對“jQuery中$符號的沖突問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漾濞| 高青县| 菏泽市| 栖霞市| 怀化市| 张家川| 祁东县| 古丈县| 韶关市| 禹州市| 扎鲁特旗| 德惠市| 卓尼县| 房产| 郸城县| 定结县| 茶陵县| 南投市| 景德镇市| 长阳| 吴江市| 潮州市| 错那县| 阿城市| 宁乡县| 玉溪市| 永州市| 武城县| 北碚区| 湘乡市| 景洪市| 贡嘎县| 新田县| 兴安盟| 镇宁| 化州市| 衡水市| 聂荣县| 新兴县| 阿拉善右旗| 余干县|