日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

jQuery与其它库冲突的解决方法(转)

發布時間:2023/11/27 28 豆豆
默认站点 收集整理的這篇文章主要介紹了 jQuery与其它库冲突的解决方法(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文出處:http://www.jb51.net/article/24014.htm

?

在jQuery庫中,幾乎所有的插件都被限制在它的命名空間里。全局的對象都很好地存儲在jQuery命名空間里,因此當把jQuery和其它javascript類庫一起使用時,不會引起沖突.

(注意:默認情況下,jQuery用$作為自身的縮寫而以)?
如果jQuery類庫和別的類庫沖突的話,可以使用jQuerynoConflict()函數來將變量$的控制權移交出給其它的javaScipt庫。看下面小片斷代碼?
<script type="text/javascript" src="../JS/JsCOM.js"></script>?
<script type="text/javascript" src="../jQuery/jquery-1.3.2-vsdoc2.js"></script>?
假設JsCOM.js庫中,有這樣一個函數?

?

1 function $(objName) { 
2 if (document.getElementById) { 
3 return eval('document.getElementById("' + objName + '")') 
4 } 
5 else { 
6 return eval("document.all." + objName) 
7 } 

大家都知道jQuery里面也一個這樣的函數,為了不引起沖突,我們將jQuery的變量$的控制權移交出給別的javascript庫?

1 jQuery.noConflict(); //將變量$的控制權移交給JsCOM.js 
2 var $cr = jQuery("#cr"); //照樣使用jQuery類庫,只是用jQuery代替了原來的$而以。 
3 var JsCOM_cr = $("cr"); //使用JsCOM.js類庫 

在這里可以把jQuery()函數作為jQuery對象的制造工廠.?
在這里要注意幾點?
1.引用javascript類庫時,一定要把jQuery引用放在最后面,就像上面一樣,JsCOM.js的引用在jQuery引用的前面(具體原因我也不知,不過確實需要這樣)?
2.特別要注意jQuery()代替$()時,jQuery是區分大小寫的,因為javascript本身就是區分大小寫的(好像說這個有點多余,不過還是希望大家不要犯這種錯誤)?
基本上根據上面的
方法就可以解決jQuery和其它庫的沖突問題了!?
如果你覺得上面的方式不爽,每次都要打jQuery來代替$增加了您敲鍵盤的工作量,那請接著看。。?
除上面之外,還有另一種選擇。如果想確保jQuery不會與其它庫沖突,但又想自定義一個快捷方式,可以進行如下操作;?

1 var $j = jQuery.noConflict(); //自定一個快捷方式 
2 var $cr = $j("#cr"); //使用jQuery類庫,得用自定義快捷方式----$j; 
3 var JsCOM_cr = $("cr"); //和上一段代碼一樣,使用的是JsCOM.js類庫 

如果您還有別的要求,想繼續使用原先的$(),同時還需要與別的類庫不沖突的話,還有兩種解決方法?
其一:?

jQuery.noConflict(); //將變量$的控制權讓給JsCOM.js 
jQuery(function($) 
{ 
$("p").click(function() //在函數內繼續可以使用jquery類庫的$()方法 
{ 
alert($(this).text()); 
}) 
}) 
var JsCOM_cr = $("cr"); // 在函數外面,照樣可以使用JsCOM.js的$()方法 

其二:?

jQuery.noConflict(); //將變量$的控件權移交給別的類庫,使用jquery類庫的$符號時,請使用jQuery("#id"); 
(function($) { //定義匿名函數并設置形參為$ 
$(function() { //匿名函數內部的$均為jQuery 
$("div").click(function() {//繼續使用$()方法 
alert($(this).text()); 
}) 
}) 
}) 
(jQuery); //使用匿名函數且傳遞實參jQUery 
alert($("cr")); //使用的是jsCOM.js類庫中的$()函數 

第二種方法應該是兼容舊的代碼最好的方式,修改的代碼是最少的!?
不過如果是新寫的jQuery代碼,我還是比較喜歡使用剛開始講的那種(jQuery.noConflict(),然后就使用jQuery("#id"),這種方式)?
如果您的頁面是先引用jQuery類庫再引入別的類庫的話,那么我們可以直接使用jQuery來做一些工作,同時,可以使用$()方法作為其它庫的快捷方式。這里無需調用jQuery.noConflict()函數,請看下面代碼?

<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() { //無需調用jQuery.noConflict()函數?
var $cr = jQuery("#cr");?
$cr.click(function() {?
if ($cr.is(":checked")) {?
alert("感謝你的支持!你可以繼續操作了..");?
}?
})?
})?
alert($("cr")); //使用的是jsCOM.js類庫中的$()函數?

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

轉載于:https://www.cnblogs.com/m3Lee/p/3732459.html

總結

以上是默认站点為你收集整理的jQuery与其它库冲突的解决方法(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。