首頁  >  文章  >  web前端  >  jQuery prototype衝突的2種解決方法(附demo範例下載)_jquery

jQuery prototype衝突的2種解決方法(附demo範例下載)_jquery

WBOY
WBOY原創
2016-05-16 15:19:061264瀏覽

本文實例分析了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程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn