欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery中 $ 符號的沖突問題及解決方案

 更新時間:2016年11月04日 16:51:38   作者:驢一鳴  
在jQuery中,$是jQuery的別名,為了書寫方便,我們更習(xí)慣用$('#id')這一類的方式來書寫代碼。這篇文章給大家分享jQuery中 $ 符號的沖突問題及解決方案,感興趣的朋友一起看看吧

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

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

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

答案是:不行。一般要用到兩個(或以上)版本的jQuery庫的原因是:現(xiàn)有的網(wǎng)站已經(jīng)用了舊版本的jQuery以及相關(guān)插件,直接將jQuery升級到新版本會導(dǎo)致這些基于舊版本jQuery的插件不能工作,除非你能把這些插件全部升級,或者等各個插件的作者發(fā)布支持新版本jQuery的插件版本?! ?/p>

解決辦法:使用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>

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

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

改進(jìn)的方法是:

先直接引用新版的jQuery庫。

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

把我們寫的腳本myJS.js中的主體內(nèi)容寫在立即調(diào)用函數(shù)里頭,引用的是新的版本的jQuery。

//myJS.js
(function() {
//myJS.js的代碼,引用的是v1.11.0
})();

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

//myJS.js
(function () {
//...此處省略/jquery1.5.0
//jquery1.5.0的壓縮代碼
  var $ = jQuery.noConflict(true);
//此處開始寫的$()所引用的是jquery1.5.0
})();

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

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

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

如果jQuery在其他js庫前,不需要使用noConflict?!?/p>

<!-- 引入 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代碼中只要引用到j(luò)Query就必須把$換成$jq。

②ready函數(shù)是jquery的入口函數(shù)

可以將

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

替換成:

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

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

③把$作為參數(shù)傳進(jìn)去

(function($) { 
//你的js代碼 
})(jQuery);

或者

jQuery(function($){ 
//你的js代碼
}

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

以上所述是小編給大家介紹的jQuery中 $ 符號的沖突問題及解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • jQuery Plupload上傳插件的使用

    jQuery Plupload上傳插件的使用

    這篇文章主要介紹了 jQuery Plupload上傳插件的使用詳解,需要的朋友可以參考下
    2017-04-04
  • 基于jquery的大眾點評,分類導(dǎo)航實現(xiàn)代碼

    基于jquery的大眾點評,分類導(dǎo)航實現(xiàn)代碼

    基于jquery的大眾點評,分類導(dǎo)航實現(xiàn)代碼,需要的朋友可以參考下。
    2011-08-08
  • jQuery將多條數(shù)據(jù)插入模態(tài)框的示例代碼

    jQuery將多條數(shù)據(jù)插入模態(tài)框的示例代碼

    這篇文章主要介紹了使用jQuery將多條數(shù)據(jù)插入模態(tài)框的方法,很簡單,很實用,需要的朋友可以參考下
    2014-09-09
  • jQuery事件委托之Safari

    jQuery事件委托之Safari

    這篇文章主要介紹了jQuery事件委托之Safari 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • jquery選擇器需要注意的問題

    jquery選擇器需要注意的問題

    本文講述的是jquery選擇器結(jié)果是數(shù)組時需要主要的一個問題,并詳細(xì)分析了產(chǎn)生此問題的原因,這里記錄下來,小伙伴們在項目中使用的時候要注意一下。
    2014-11-11
  • jQuery實現(xiàn)模糊搜索功能的方法分析

    jQuery實現(xiàn)模糊搜索功能的方法分析

    這篇文章主要介紹了jQuery實現(xiàn)模糊搜索功能的方法,結(jié)合實例形式總結(jié)分析了jQuery關(guān)鍵字搜索、模糊查詢、動態(tài)刪除table數(shù)據(jù)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • jQuery中add()方法用法實例

    jQuery中add()方法用法實例

    這篇文章主要介紹了jQuery中add()方法用法,實例分析了add()方法的功能、定義及匹配元素中添加與表達(dá)式匹配的元素使用技巧,需要的朋友可以參考下
    2015-01-01
  • jquery特效 點擊展示與隱藏全文

    jquery特效 點擊展示與隱藏全文

    這篇文章主要介紹了jquery特效,實現(xiàn)點擊展示與隱藏全文特效,實現(xiàn)方法很簡單,具有一定的借鑒參考價值,感興趣的小朋友可以參考一下
    2015-12-12
  • jQuery自定義添加

    jQuery自定義添加"$"與解決"$"沖突的方法

    這篇文章主要介紹了jQuery自定義添加"$"與解決"$"沖突的方法,介紹了用戶自定義添加“$”擴(kuò)展jQuery功能的方法,以及解決"$"沖突的技巧,需要的朋友可以參考下
    2015-01-01
  • 最新的10款jQuery內(nèi)容滑塊插件分享

    最新的10款jQuery內(nèi)容滑塊插件分享

    本篇文章介紹10款新鮮、有用的jQuery內(nèi)容導(dǎo)航插件,肯定是免費(fèi)的了,希望對你有幫助。
    2011-09-09

最新評論