解決jquery和其他庫的衝突
在jQuery庫中,幾乎所有的外掛都被限制在他的名稱空間裡。通常,全域性(global)物件都被很好地儲存在jQuery名稱空間裡,因此當把jQuery和其他JavaScript庫一起使用時,不會引起衝突。
jQuery庫在其他庫之後匯入
方法1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>衝突解決1</title> <!-- 引入 prototype --> <script src="prototype-1.6.0.3.js" type="text/javascript"></script> <!-- 引入 jQuery --> <script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script> </head> <body> <p id="pp">test---prototype</p> <p >test---jQuery</p> <script type="text/javascript"> jQuery.noConflict(); //將變數$的控制權讓渡給prototype.js jQuery(function(){ //使用jQuery jQuery("p").click(function(){ alert( jQuery(this).text() ); }); }); $("pp").style.display = 'none'; //使用prototype </script> </body> </html>
方法2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>衝突解決2</title> <!-- 引入 prototype --> <script src="prototype-1.6.0.3.js" type="text/javascript"></script> <!-- 引入 jQuery --> <script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script> </head> <body> <p id="pp">test---prototype</p> <p >test---jQuery</p> <script type="text/javascript"> var $j = jQuery.noConflict(); //自定義一個比較短快捷方式 $j(function(){ //使用jQuery $j("p").click(function(){ alert( $j(this).text() ); }); }); $("pp").style.display = 'none'; //使用prototype </script> </body> </html>
方法3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>衝突解決3</title> <!-- 引入 prototype --> <script src="prototype-1.6.0.3.js" type="text/javascript"></script> <!-- 引入 jQuery --> <script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script> </head> <body> <p id="pp">test---prototype</p> <p >test---jQuery</p> <script type="text/javascript"> jQuery.noConflict(); //將變數$的控制權讓渡給prototype.js jQuery(function($){ //使用jQuery $("p").click(function(){ //繼續使用 $ 方法 alert( $(this).text() ); }); }); $("pp").style.display = 'none'; //使用prototype </script> </body> </html>
方法4(外掛一般以這種形式寫)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>衝突解決4</title> <!-- 引入 prototype --> <script src="prototype-1.6.0.3.js" type="text/javascript"></script> <!-- 引入 jQuery --> <script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script> </head> <body> <p id="pp">test---prototype</p> <p >test---jQuery</p> <script type="text/javascript"> jQuery.noConflict(); //將變數$的控制權讓渡給prototype.js (function($){ //定義匿名函式並設定形參為$ $(function(){ //匿名函式內部的$均為jQuery $("p").click(function(){ //繼續使用 $ 方法 alert($(this).text()); }); }); })(jQuery); //執行匿名函式且傳遞實參jQuery $("pp").style.display = 'none'; //使用prototype </script> </body> </html>
jQuery庫在其他庫之前匯入
方法5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>衝突解決5</title> <!--先匯入jQuery --> <script src="../../scripts/jquery-1.4.3.min.js" type="text/javascript"></script> <!--後匯入其他庫 --> <script src="prototype-1.6.0.3.js" type="text/javascript"></script> </head> <body> <p id="pp">test---prototype</p> <p >test---jQuery</p> <script type="text/javascript"> jQuery(function(){ //直接使用 jQuery ,沒有必要呼叫"jQuery.noConflict()"函式。 jQuery("p").click(function(){ alert( jQuery(this).text() ); }); }); $("pp").style.display = 'none'; //使用prototype </script> </body> </html>
相關文章
- jQuery.noConflict() 方法—— jquery庫與其他庫衝突的問題解決jQuery
- jQuery多庫衝突jQuery
- 使用SUI與JQuery衝突的解決方法UIjQuery
- 關於jquery.form和jquery.validata衝突的解決方案jQueryORM
- 如解決jquery與原生js衝突的問題jQueryJS
- 解決動態庫的符號衝突符號
- jQuery的$命名衝突jQuery
- Git 解決衝突Git
- git 解決衝突Git
- 解決echsop相容jquery(transport.js的衝突)的問題jQueryJS
- SVN衝突解決和注意事項
- JavaScript中解決jQuery和Prototype.js同時引入衝突問題JavaScriptjQueryJS
- 程式衝突及其解決
- git pull 衝突解決Git
- windows解決埠衝突Windows
- IP衝突解決方案
- SVN 版本衝突解決
- hash衝突解決方法
- Git衝突解決技巧Git
- jquery和dwr的util.js方法衝突jQueryJS
- 如何防止jQuery庫不同版本之間的衝突jQuery
- Flutter和iOS手勢衝突解決思路FlutteriOS
- git pull衝突的解決方案Git
- JAR衝突問題的解決JAR
- 關於hash衝突的解決
- 如何解決jQuery的美元$符號衝突問題jQuery符號
- jquery如何解決版本之間衝突的問題jQuery
- css命名衝突解決方法CSS
- SVN解決衝突 記錄
- 流衝突解決方案——流
- 雙擊和單擊事件衝突解決方法事件
- 依賴衝突時的解決方法
- 採用JSI解決不同類庫間的衝突(轉)JS
- Git 衝突了怎麼辦,如何高效快速的解決程式碼衝突?Git
- git 解決版本衝突問題Git
- Git命令列下解決衝突Git命令列
- Eclipse中Egit衝突解決EclipseGit
- 解決預設方法衝突的規則