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

首頁 > 編程 > JavaScript > 正文

JQuery的$命名沖突詳細解析

2019-11-20 21:21:25
字體:
來源:轉載
供稿:網友

在Jquery中,$是JQuery的別名,所有使用$的地方也都可以使用JQuery來替換,如$('#msg')等同于JQuery('#msg')的寫法。然而,當我們引入多個js庫后,在另外一個js庫中也定義了$符號的話,那么我們在使用$符號時就發生了沖突。下面以引入兩個庫文件jquery.js和prototype.js為例來進行說明。

第一種情況:jquery.js在prototype.js之后進行引入,如:
<script src="prototype.js" type="text/javascript"/>
<script src="jquery.js" type="text/javascript"/>

在這種情況下,我們在自己的js代碼中如下寫的話:

$('#msg').hide();

$永遠代表的是jquery中定義的$符號,也可以寫成JQuery('#msg').hide();如果想要使用prototype.js中定義的$,我們在后面再介紹。


第二種情況:jquery.js在prototype.js之前進行引入,如:
<script src="jquery.js" type="text/javascript"/>
<script src="prototype.js" type="text/javascript"/>

在這種情況下,我們在自己的js代碼中如下寫的話:

$('#msg').hide();

$此時代表的prototype.js中定義的$符號,如果我們想要調用jquery.js中的工廠選擇函數功能的話,只能用全稱寫法JQuery('#msg').hide().

下面先介紹在第一種引入js庫文件順序的情況下,如何正確的使用不同的js庫中定義的$符號。

一.使用JQuery.noConflict()
該方法的作用就是讓Jquery放棄對$的所有權,將$的控制權交還給prototype.js,因為jquery.js是后引入的,所以最后擁有$控制權的是jquery。它的返回值是JQuery。當在代碼中調用了該 方法以后,我們就不可以使用$來調用jquery的方法了,此時$就代表在prototype.js庫中定義的$了。如下:

JQuery.noConflict();

//此處不可以再寫成$('#msg').hide(),此時的$代表prototype.js中定義的$符號。
JQuey('#msg').hide();

自此以后$就代表prototype.js中定義的$,jquery.js中的$無法再使用,只能使用jquery.js中$的全稱JQuery了。


二.自定義JQuery的別名
如果覺得第一種方法中使用了JQuery.noConflict()方法以后,只能使用JQuery全稱比較麻煩的話,我們還可以為JQuery重定義別名。如下:

var $j=JQuery.noConflict();
$j('#msg').hide();//此處$j就代表JQuery
自此以后$就代表prototype.js中定義的$,jquey.js中的$無法再使用,只能使用$j來作為jquey.js中JQuery的別名了。


三.使用語句塊,在語句塊中仍然使用jquery.js中定義的$,如下:
JQuery.noConflict();
JQuery(document).ready(function($){
$('#msg').hide();//此時在整個ready事件的方法中使用的$都是jquery.js中定義的$.
});

或者使用如下語句塊:

(function($){
.....
$('#msg').hide();//此時在這個語句塊中使用的都是jquery.js中定義的$.
})(JQuery)

如果在第二種引入js庫文件順序的情況下,如何使用jquery.js中的$,我們還是可以使用上面介紹的語句塊的方法,如:

復制代碼 代碼如下:

<script src="jquery.js" type="text/javascript"/>
<script src="prototype.js" type="text/javascript"/>
<script type="text/javascript">

(function($){
.....
$('#msg').hide();//此時在這個語句塊中使用的都是jquery.js中定義的$.
})(JQuery)
</script>


這種使用語句塊的方法非常有用,在我們自己寫jquery插件時,應該都使用這種寫法,因為我們不知道具體工作過程中是如何順序引入各種js庫的,而這種語句塊的寫法卻能屏蔽沖突。

(function($){})(jQuery)

1 首先(function(){})()這種寫法 是創建了一個匿名的方法并立即執行(function(){})這個是匿名方法后面的括號就是立即調用了這個方法)。
這樣做可以創建一個作用域以保證內部變量與外部變量不發生沖突,比如$ jQuery 等jquery內部定義的變量。

2 (function($){})(jQuery) 這個寫法主要的作用還是保證jquery不與其他類庫或變量有沖突 首先是要保證jQuery這個變量名與外部沒有沖突(jquery內部$與jQuery是同一個東西 有兩個名字的原因就是怕$與其他變量名有沖突二jQuery與其他變量沖突的幾率非常?。┎魅肽涿麑ο螅涿麑ο蠼o參數起名叫做$(其實和jquery內部是一樣的) 然后你就可以自由的在(function($){})(jQuery)里寫你的插件而不需要考慮與外界變量是否存在沖突

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产网站| 九九热精品在线| 国产日韩欧美日韩大片| 亚洲一区二区三区毛片| 国产成人精品免高潮在线观看| 91中文精品字幕在线视频| 亚洲精品欧美一区二区三区| 亚洲美女视频网| 久久精品影视伊人网| 欧美性少妇18aaaa视频| 欧美贵妇videos办公室| 亚洲激情国产精品| 国产精品91在线| 中文字幕亚洲欧美一区二区三区| 91亚洲精华国产精华| 亚洲精品久久久久中文字幕欢迎你| 国产精品7m视频| www.欧美精品一二三区| 久久免费高清视频| 成人乱人伦精品视频在线观看| 欧美视频精品一区| 91久久精品日日躁夜夜躁国产| 亚洲人成网站在线播| 日韩av在线网| 91po在线观看91精品国产性色| 欧美整片在线观看| 91探花福利精品国产自产在线| 97色在线视频| 欧美在线一区二区三区四| 一夜七次郎国产精品亚洲| 在线国产精品播放| 国产午夜精品免费一区二区三区| 亚洲欧美另类人妖| 精品国产91久久久久久老师| 亚洲午夜av电影| 国产欧美亚洲精品| 日韩成人av在线| 亚洲天堂网站在线观看视频| 亚洲精品免费av| 不卡av在线播放| 亚洲欧美制服中文字幕| 国产精品激情av在线播放| 中文字幕亚洲欧美一区二区三区| 亚洲精品久久久一区二区三区| 国产美女被下药99| 欧美日韩国产在线播放| www.亚洲一二| 一区二区三区四区在线观看视频| 国产精品扒开腿做爽爽爽的视频| 国产精品91免费在线| 97在线视频免费| 国产成人自拍视频在线观看| 久久国产精品久久久久久| 欧美韩国理论所午夜片917电影| 中文字幕自拍vr一区二区三区| 欧美成人在线影院| 欧美在线视频网| 欧美成人性色生活仑片| 国内外成人免费激情在线视频网站| 26uuu另类亚洲欧美日本一| 国产精品美女免费| 一本色道久久综合亚洲精品小说| 在线观看中文字幕亚洲| 国产精品永久免费在线| 成人写真福利网| 亚洲高清色综合| 欧美做受高潮电影o| 国产日韩中文在线| xxxxx91麻豆| 国产69精品久久久久久| 88xx成人精品| 久久久久久久电影一区| 日本精品va在线观看| 国内精品国产三级国产在线专| 一区二区三区国产视频| 91高潮精品免费porn| 91亚洲精品久久久久久久久久久久| 精品在线观看国产| 久久久久久久久电影| 91av在线国产| 国产成人小视频在线观看| 久久久久久伊人| 欧美一二三视频| 狠狠爱在线视频一区| 日本精品视频在线观看| 69国产精品成人在线播放| 亚洲人线精品午夜| 精品伊人久久97| 亚洲精品在线不卡| 国内揄拍国内精品少妇国语| 欧美人成在线视频| 在线视频精品一| 77777亚洲午夜久久多人| 亚洲va电影大全| 日韩欧美精品免费在线| 日韩欧美在线国产| 国产精品自拍偷拍| 久久视频免费观看| 91亚洲午夜在线| 尤物九九久久国产精品的特点| 国产日韩欧美夫妻视频在线观看| 亚洲精品动漫100p| 4438全国亚洲精品在线观看视频| 欧美性生交xxxxx久久久| 日韩av在线免费看| 成人精品久久一区二区三区| 日韩精品在线视频美女| 亚洲专区在线视频| 中文字幕久热精品在线视频| 91精品国产九九九久久久亚洲| 91免费福利视频| 久久精品亚洲国产| 亚洲国产精品一区二区三区| 国产成人精品一区二区在线| 亚洲精品国精品久久99热一| 69久久夜色精品国产69| 国产在线播放91| 日韩有码在线电影| 国产成人鲁鲁免费视频a| 国产+成+人+亚洲欧洲| 九九热这里只有精品免费看| 精品亚洲国产成av人片传媒| 国产91对白在线播放| 国产精品久久久久久久9999| 亚洲性猛交xxxxwww| 全亚洲最色的网站在线观看| 日韩成人av网| 国产精品大陆在线观看| 久久久噜噜噜久久中文字免| 91成品人片a无限观看| 国产在线观看不卡| 色婷婷久久一区二区| 久久精品一本久久99精品| 日韩精品在线免费播放| 国产在线播放91| 亚洲伊人久久大香线蕉av| 欧美一级电影在线| 色午夜这里只有精品| 日韩亚洲一区二区| 91九色综合久久| 亚洲欧美激情另类校园| 亚洲精品国产拍免费91在线| 91九色在线视频| 色多多国产成人永久免费网站| 日本久久久久久| 亚洲福利小视频| 久久人人爽人人爽人人片av高请| 亚洲剧情一区二区| 日韩av一区二区在线| 欧美乱妇高清无乱码| 亚州成人av在线| 九九热这里只有精品免费看| 久久艹在线视频| 97国产真实伦对白精彩视频8| 欧美一级电影久久| 精品国产一区二区三区久久久狼| 91欧美激情另类亚洲| 美女视频黄免费的亚洲男人天堂| 欧美视频不卡中文| 68精品国产免费久久久久久婷婷| 91视频国产高清| 国内精品小视频在线观看| 97免费视频在线| 在线观看日韩视频|