麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

快速解決jQuery與其他庫沖突的方法介紹

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

通常,當在同一個頁面上使用jQuery和其他庫時,全局名稱$的定義是最大的爭論和沖突的焦點。眾所周知,jQuery使用$作為jQuery名稱的別名,并將其用于jQuery公開的每一個功能,但是其他庫,最著名的就是Prototype,也使用$名稱。

1. jQuery提供了$.noConflict()實用函數用來放棄對$標識符的占用,以便其他庫使用它。

該函數的語法如下:
$.noConflict(jqueryToo)

將標識符$的控制權歸還給其他庫,允許在頁面上混合使用jQuery與其他庫。一旦執行了該函數,必須使用jQuery標識符而不是$標識符來調用jQuery的功能,

你也可以放棄jQuery標識符(可選)

應該在包含了jQuery之后,但尚未包含沖突庫之前調用這個方法。


盡管使用的是jQuery標識符,但因為$是jQuery的別名,所以在應用$.noConflict()之后所有jQuery的功能依然可用。我們可以定義更短的,但沒有沖突的jQuery別名,例如

var  $j = jQuery ;

2. 另一個常見的習慣用法是創建一個作用域環境,在該環境中$標識符指向jQuery對象,在擴展jQuery的時候這是個常用技巧,特別是對于插件作者來說,他們不可能對于頁面開發者是否已經調用$.noConflict()作出任何假設,當然也不能自行調用此函數以免破壞頁面開發者的意愿,

這個習慣用法如下:
(function($) { }) (jQuery);
(function($) { })

這部分聲明了一個函數并用圓括號括起來,由此生成一個表達式,這個表達式的結果是對一個匿名函數的引用,這個函數期望傳入單個參數并將其命名為$,在函數主體中,可以通過$標識符來引用任何傳遞給這個函數的東西。因為參數聲明優先于全局作用域中任何類似的命名標識符,所以任何在函數外定義的$值在函數內都會被傳入的參數所代替。

(jQuery)

在匿名函數上執行函數調用,將jQuery對象作為參數傳遞


在函數外部不管$標識符是否已經在Prototype或其他庫中定義,在函數體內它總是指向jQuery對象。

當使用這個技巧時,外部聲明的$在函數體內是不可用的。

3. 第二種的用法的一個變體也經常用于聲明就緒處理函數,從而形成了第三種語法,
jQuery( function($){
})

當編寫可重用的組件并且這些組件可能會用于已經使用了$.noConflict()的頁面時,最好對$的定義采取這種預防措施。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品一区二区视频在线观看 | 亚洲福利在线观看视频 | 日韩黄色免费电影 | 免费在线观看国产精品 | 蜜桃传媒视频麻豆第一区免费观看 | 最新91在线视频 | 日本成年网 | 天天看夜夜爽 | 国产精品久久久久久久久岛 | 欧美一级高潮片免费的 | 特大黑人videos与另类娇小 | 精品国产欧美一区二区 | 精品国产91久久久久久浪潮蜜月 | 欧美黄一级| 精品一区二区三区中文字幕老牛 | 一级视频网站 | 国产在线观看91一区二区三区 | 国产精品成人免费一区久久羞羞 | 一级大片视频 | 视频久久免费 | 久久久精品视频免费看 | 亚洲午夜在线 | 日韩精品中文字幕一区二区三区 | 成人在线观看一区 | 爱视频福利 | 久久久av影视| 色淫视频| 日韩大片在线永久观看视频网站免费 | 亚洲成在人 | 亚洲91网 | 综合精品| 久久久久久亚洲国产精品 | 亚洲精品动漫在线观看 | 免费一级毛片在线播放视频 | 中文字幕综合在线观看 | 日本在线视频免费观看 | 舌头伸进添的我好爽高潮网站 | 亚洲视屏在线观看 | 亚洲第一成人av | 视频一区二区三区在线 | 日本特级a一片免费观看 |