2018年1月18號(hào),聽(tīng)著川哥的獨(dú)情者,進(jìn)入狀態(tài),記下jquery中如何處理污染的全局變量。
我們知道,jquery占用了兩個(gè)全局變量,$和jQuery,意思就是我們不能再引用jquery文件的網(wǎng)頁(yè)中申明以上兩個(gè)變量,否則會(huì)發(fā)生全局沖突,覆蓋掉jquery中原先的代碼段。
例如:
在引入jquery文件的網(wǎng)頁(yè)中,我自己定義了一個(gè)對(duì)象,取名為$,與jquery的全局變量$發(fā)生沖突,這時(shí)候假如我們$("div").css("color","red"); ,$是不能用的,因?yàn)槲叶x的$對(duì)象覆蓋了jquery中定義的$--獲取標(biāo)簽元素。那么這樣,問(wèn)題就來(lái) 了?我不想改動(dòng)我自己定義的變量,但是又想獲取元素,又不想自己再去封裝一個(gè)獲取元素的方法,怎么處理?這涉及到j(luò)query如何處理污染的全局變量。一般有兩個(gè)方法。
1、jquery中的$是不能用了,但是還有一個(gè)呢。哈,不得不說(shuō)jquery的聰明之處了,還有一個(gè)全局變量就是jQuery,作用跟$一樣,也是獲取元素。只不過(guò)因?yàn)樽帜高^(guò)長(zhǎng),被人們嫌棄了點(diǎn)。
2、假如jQuery也被人們占用了呢?那么就用到noConflict()方法來(lái)處理。就是申明一個(gè)變量接收noConflict()返回的全局變量$即可。申明的那個(gè)變量就是原先jquery中定義個(gè)全局變量$。