本文實例分析了jQuery prototype衝突的2種解決方法。分享給大家參考,具體如下:
jquery和prototype怎麼會衝突,歸根到底就是因為他們二個都用到了$,同時用,混淆了。這個問題解決過不下5次,每次解決都要檢查一下。淡疼,嘿嘿。
方法一、在jquery的核心函式庫檔案中加入程式碼。
1、一般是jquery.js,或jquery.min.js,有的有版本號的。知道是哪個文件就行。
})( window ); jQuery.noConflict(); //最后面,加上这一行。
2、載入測試jquery和prototype檔
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script> <script src="jquery.min.js"></script>
3、js程式碼寫法
<script type="text/javascript"> alert('prototype value : '+$('test').value); //prototype写法 jQuery(document).ready(function($){ //注意这里的,jQuery和$ alert('jquery value : '+$('#test').val()); //jquery写法 }); </script>
推薦這種方法,這種方法比較一勞永逸
完整demo程式碼如下:
<html> <head> <script type="text/javascript" src="./prototype.js"></script> <script src="jquery.min.js"></script> </head> <body> <form> <input id="test" type='text' name='test' value='test'/> </form> <script type="text/javascript"> alert('prototype value : '+$('test').value); jQuery(document).ready(function($){ alert('jquery value : '+$('#test').val()); }); </script> </body> </html>
方法二、在呼叫jquery的地方,解決衝突
1、載入測試jquery和prototype檔
//jquery和prototype,没有先后顺序,谁先谁后都一样。 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
2、js程式碼
<script type="text/javascript"> jQuery.noConflict(); //解决冲突,这个一定要放在js代码的最前面,不然就会报错了。 alert('prototype value : '+$('test').value); jQuery(document).ready(function($){ alert('jquery value : '+$('#test').val()); }); </script>
這種方法比較適合jquery的核心原始檔不在自己的伺服器上,或是jquery程式碼比較少的情況。此範例demo點此查看。
完整demo可點擊此處本站下載。
希望本文所述對大家jQuery程式設計有所幫助。