一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

jQuery與其它庫(kù)沖突的解決方法

(注意:默認(rèn)情況下,jQuery用$作為自身的縮寫(xiě)而以)
如果jQuery類(lèi)庫(kù)和別的類(lèi)庫(kù)沖突的話(huà),可以使用jQuerynoConflict()函數(shù)來(lái)將變量$的控制權(quán)移交出給其它的JavaScipt庫(kù)??聪旅嫘∑瑪啻a
<script type="text/Javascript" src="../JS/JsCOM.js"></script>
<script type="text/Javascript" src="../jQuery/jquery-1.3.2-vsdoc2.js"></script>
假設(shè)JsCOM.js庫(kù)中,有這樣一個(gè)函數(shù)
復(fù)制代碼 代碼如下:
function $(objName) {
if (document.getElementById) {
return eval('document.getElementById("' + objName + '")')
}
else {
return eval("document.all." + objName)
}

大家都知道jQuery里面也一個(gè)這樣的函數(shù),為了不引起沖突,我們將jQuery的變量$的控制權(quán)移交出給別的Javascript庫(kù)
復(fù)制代碼 代碼如下:
jQuery.noConflict(); //將變量$的控制權(quán)移交給JsCOM.js
var $cr = jQuery("#cr"); //照樣使用jQuery類(lèi)庫(kù),只是用jQuery代替了原來(lái)的$而以。
var JsCOM_cr = $("cr"); //使用JsCOM.js類(lèi)庫(kù)

在這里可以把jQuery()函數(shù)作為jQuery對(duì)象的制造工廠(chǎng).
在這里要注意幾點(diǎn)
1.引用Javascript類(lèi)庫(kù)時(shí),一定要把jQuery引用放在最后面,就像上面一樣,JsCOM.js的引用在jQuery引用的前面(具體原因我也不知,不過(guò)確實(shí)需要這樣)
2.特別要注意jQuery()代替$()時(shí),jQuery是區(qū)分大小寫(xiě)的,因?yàn)?a href=/itjie/Javajishu/ target=_blank class=infotextkey>Javascript本身就是區(qū)分大小寫(xiě)的(好像說(shuō)這個(gè)有點(diǎn)多余,不過(guò)還是希望大家不要犯這種錯(cuò)誤)
基本上根據(jù)上面的
方法就可以解決jQuery和其它庫(kù)的沖突問(wèn)題了!
如果你覺(jué)得上面的方式不爽,每次都要打jQuery來(lái)代替$增加了您敲鍵盤(pán)的工作量,那請(qǐng)接著看。。
除上面之外,還有另一種選擇。如果想確保jQuery不會(huì)與其它庫(kù)沖突,但又想自定義一個(gè)快捷方式,可以進(jìn)行如下操作;
復(fù)制代碼 代碼如下:
var $j = jQuery.noConflict(); //自定一個(gè)快捷方式
var $cr = $j("#cr"); //使用jQuery類(lèi)庫(kù),得用自定義快捷方式----$j;
var JsCOM_cr = $("cr"); //和上一段代碼一樣,使用的是JsCOM.js類(lèi)庫(kù)

如果您還有別的要求,想繼續(xù)使用原先的$(),同時(shí)還需要與別的類(lèi)庫(kù)不沖突的話(huà),還有兩種解決方法
其一:
復(fù)制代碼 代碼如下:
jQuery.noConflict(); //將變量$的控制權(quán)讓給JsCOM.js
jQuery(function($)
{
$("p").click(function() //在函數(shù)內(nèi)繼續(xù)可以使用jquery類(lèi)庫(kù)的$()方法
{
alert($(this).text());
})
})
var JsCOM_cr = $("cr"); // 在函數(shù)外面,照樣可以使用JsCOM.js的$()方法

其二:
復(fù)制代碼 代碼如下:
jQuery.noConflict(); //將變量$的控件權(quán)移交給別的類(lèi)庫(kù),使用jquery類(lèi)庫(kù)的$符號(hào)時(shí),請(qǐng)使用jQuery("#id");
(function($) { //定義匿名函數(shù)并設(shè)置形參為$
$(function() { //匿名函數(shù)內(nèi)部的$均為jQuery
$("div").click(function() {//繼續(xù)使用$()方法
alert($(this).text());
})
})
})
(jQuery); //使用匿名函數(shù)且傳遞實(shí)參jQUery
alert($("cr")); //使用的是jsCOM.js類(lèi)庫(kù)中的$()函數(shù)

第二種方法應(yīng)該是兼容舊的代碼最好的方式,修改的代碼是最少的!
不過(guò)如果是新寫(xiě)的jQuery代碼,我還是比較喜歡使用剛開(kāi)始講的那種(jQuery.noConflict(),然后就使用jQuery("#id"),這種方式)
如果您的頁(yè)面是先引用jQuery類(lèi)庫(kù)再引入別的類(lèi)庫(kù)的話(huà),那么我們可以直接使用jQuery來(lái)做一些工作,同時(shí),可以使用$()方法作為其它庫(kù)的快捷方式。這里無(wú)需調(diào)用jQuery.noConflict()函數(shù),請(qǐng)看下面代碼
復(fù)制代碼 代碼如下:
<script type="text/Javascript" src="../jQuery/jquery-1.3.2-vsdoc2.js"></script>
<script type="text/Javascript" src="../JS/JsCOM.js"></script>
jQuery().ready(function() { //無(wú)需調(diào)用jQuery.noConflict()函數(shù)
var $cr = jQuery("#cr");
$cr.click(function() {
if ($cr.is(":checked")) {
alert("感謝你的支持!你可以繼續(xù)操作了..");
}
})
})
alert($("cr")); //使用的是jsCOM.js類(lèi)庫(kù)中的$()函數(shù)

好了,看了上面這么多種方法來(lái)解決沖突,這下你可以放心的在您的項(xiàng)目中引用jQuery了吧 :)

JavaScript技術(shù)jQuery與其它庫(kù)沖突的解決方法,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 97国产成人精品视频 | 国产午夜视频在线观看第四页 | 91久久打屁股调教网站 | 亚洲免费一区二区 | 成年人免费小视频 | 98香蕉草草视频在线精品看 | 99精品视频在线播放2 | 国产精品美女在线观看 | 久久成人免费观看全部免费 | 亚洲狠狠综合久久 | 亚洲天堂色网站 | 久久网综合 | baoyu777永久免费视频 | 1区2区| 色老板在线视频一区二区 | 欧美在线观看黄色 | 六月婷婷六月天 | 午夜免费的国产片在线观看 | 91久久国产视频 | 久久er精品视频 | 91资源在线播放 | 92精品国产自产在线观看48 | 九九视频高清视频免费观看 | 一本色道久久综合 | 超人碰碰碰人人成碰人 | 亚洲涩综合| 久久久久青草大香线综合精品 | 国产免费观看视频 | 九九成人免费视频 | 中文字幕一区二区三区免费视频 | 国产精品99久久 | 国产 欧美 日产久久 | 久久国产乱子伦精品免费看 | 337p人体大胆扒开下部 | 激情五月婷婷基地 | 亚洲欧美一级久久精品 | 六月婷婷久香在线视频 | 91在线视频精品 | 999www成人 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女 | 国产精品免费看久久久麻豆 |