最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JQuery的$命名沖突詳細解析

 更新時間:2013年12月28日 10:14:03   作者:  
在Jquery中,$是JQuery的別名,所有使用$的地方也都可以使用JQuery來替換,如$('#msg')等同于JQuery('#msg')的寫法。然而,當我們引入多個js庫后,在另外一個js庫中也定義了$符號的話,那么我們在使用$符號時就發(fā)生了沖突

在Jquery中,$是JQuery的別名,所有使用$的地方也都可以使用JQuery來替換,如$('#msg')等同于JQuery('#msg')的寫法。然而,當我們引入多個js庫后,在另外一個js庫中也定義了$符號的話,那么我們在使用$符號時就發(fā)生了沖突。下面以引入兩個庫文件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中定義的$符號,如果我們想要調(diào)用jquery.js中的工廠選擇函數(shù)功能的話,只能用全稱寫法JQuery('#msg').hide().

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

一.使用JQuery.noConflict()
該方法的作用就是讓Jquery放棄對$的所有權(quán),將$的控制權(quán)交還給prototype.js,因為jquery.js是后引入的,所以最后擁有$控制權(quán)的是jquery。它的返回值是JQuery。當在代碼中調(diào)用了該 方法以后,我們就不可以使用$來調(diào)用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中的$,我們還是可以使用上面介紹的語句塊的方法,如:

復(fù)制代碼 代碼如下:

<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插件時,應(yīng)該都使用這種寫法,因為我們不知道具體工作過程中是如何順序引入各種js庫的,而這種語句塊的寫法卻能屏蔽沖突。

(function($){})(jQuery)

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

2 (function($){})(jQuery) 這個寫法主要的作用還是保證jquery不與其他類庫或變量有沖突 首先是要保證jQuery這個變量名與外部沒有沖突(jquery內(nèi)部$與jQuery是同一個東西 有兩個名字的原因就是怕$與其他變量名有沖突二jQuery與其他變量沖突的幾率非常小)并傳入匿名對象,匿名對象給參數(shù)起名叫做$(其實和jquery內(nèi)部是一樣的) 然后你就可以自由的在(function($){})(jQuery)里寫你的插件而不需要考慮與外界變量是否存在沖突

相關(guān)文章

  • jquery 自定義容器下雨效果可將下雨圖標改為其他

    jquery 自定義容器下雨效果可將下雨圖標改為其他

    這篇文章主要介紹了jquery 自定義容器下雨效果可將下雨圖標改為其他,需要的朋友可以參考下
    2014-04-04
  • Jquery知識點二 jquery下對數(shù)組的操作

    Jquery知識點二 jquery下對數(shù)組的操作

    眾所周知,Jquery是對JavaScript的一種高效的封裝,所以Jquery要操作的數(shù)組即是JavaScript中的數(shù)組,在JavaScript中我們使用for以及for-in進行數(shù)組的操作,而在Jquery中則使用$.map()、$.each()來操作數(shù)組
    2011-01-01
  • jquery插件開發(fā)注意事項小結(jié)

    jquery插件開發(fā)注意事項小結(jié)

    Jquery是繼prototype之后又一個優(yōu)秀的Javascrīpt框架。它是輕量級的js庫(壓縮后只有21k) ,它兼容CSS3,還兼容各種瀏覽器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)
    2013-06-06
  • jquery中$.post()方法的簡單實例

    jquery中$.post()方法的簡單實例

    本篇文章主要是對jquery中$.post()方法的簡單實例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 引用jquery框架后出錯的解決方法

    引用jquery框架后出錯的解決方法

    下面小編就為大家?guī)硪黄胘query框架后出錯的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Jquery之Ajax運用 學習運用篇

    Jquery之Ajax運用 學習運用篇

    JQuery中Ajax的運用相信很多人都已熟悉,本文主要是記錄下個人實踐中的應(yīng)用知識,旨在加強記憶。
    2011-09-09
  • jQuery實現(xiàn)連續(xù)動畫效果實例分析

    jQuery實現(xiàn)連續(xù)動畫效果實例分析

    這篇文章主要介紹了jQuery實現(xiàn)連續(xù)動畫效果,實例分析了animate方法實現(xiàn)動畫效果的相關(guān)技巧,并備有較為詳盡的注釋供讀者學習參考,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • jquery中EasyUI實現(xiàn)異步樹

    jquery中EasyUI實現(xiàn)異步樹

    前面我們分享了使用jquery中EasyUI實現(xiàn)同步樹的代碼,本文我們就來看下使用EasyUI實現(xiàn)異步樹的方法和示例,希望小伙伴們能夠喜歡。
    2015-03-03
  • ASP.NET jQuery 實例17 通過使用jQuery validation插件校驗ListBox

    ASP.NET jQuery 實例17 通過使用jQuery validation插件校驗ListBox

    這節(jié)介紹jQuery validation插件一個新的校驗規(guī)則屬性rangelength,通過數(shù)組方式賦值
    2012-02-02
  • jQuery插件jRumble實現(xiàn)網(wǎng)頁元素抖動

    jQuery插件jRumble實現(xiàn)網(wǎng)頁元素抖動

    jRumble是jquery的插件,可以讓你選擇的元素抖動。 調(diào)用時只需一句代碼即可,有些抖動效果還挺可愛,可自定義的抖動效果,十分的炫酷,有需要的小伙伴可以參考下。
    2015-06-06

最新評論

花莲县| 兰考县| 安义县| 雷山县| 夹江县| 商都县| 贵定县| 苏州市| 永善县| 乌海市| 鄄城县| 太保市| 凌海市| 抚州市| 江孜县| 庄浪县| 治县。| 囊谦县| 阿克苏市| 武隆县| 芒康县| 北辰区| 沈阳市| 光泽县| 平湖市| 徐州市| 祁阳县| 阆中市| 竹溪县| 铅山县| 龙游县| 滦平县| 南皮县| 陇西县| 姚安县| 德庆县| 登封市| 石楼县| 会理县| 清远市| 巴彦淖尔市|