query和prototype库冲突的解决方法
我們在使用 jQuery 的過程中我們會頻繁使用 $ 符號,$是JQuery的別名,所有使用$的地方也都可以使用JQuery來替換,例如 如$('#msg')等同于JQuery('#msg')的寫法。
在頁面中同時引入另一個js類庫,并且該類庫也是用了 $ 符號時,$ 代表的變量將被覆蓋。例如 prototype.js。
我們舉個例子:
A.jquery.js 在 prototype.js 之前引入
<script src="jquery.js" type="text/javascript"/> <script src="prototype.js" type="text/javascript"/>在這種情況下,我們在自己的js代碼中如下寫的話:
$('#msg').hide();
$此時代表的prototype.js中定義的$符號,如果我們想要調(diào)用jquery.js中的工廠選擇函數(shù)功能的話,只能用全稱寫法JQuery
('#msg').hide().
B.jquery.js 在 prototype.js 之后引入
在這種情況下,我們在自己的js代碼中如下寫的話:?$('#msg').hide();
$永遠(yuǎn)代表的是jquery中定義的$符號,也可以寫成JQuery('#msg').hide();prototype.js中定義的$則被覆蓋了,
解決的方法 1:在編寫完 使用了 jquery 中的 $的代碼后 用
JQuery.noConflict();
來讓Jquery放棄對$的所有權(quán),將$的控制權(quán)交還給prototype.js,因為jquery.js是后引入的,所以最后擁有$控制權(quán)的是jquery,當(dāng)在代碼中調(diào)用了該 方法以后,我們就不可以使用$來調(diào)用jquery的方法了,而要使用 jQuery() 方法。
解決的方法 2:自定義jquery 的別名
var $j=JQuery.noConflict(); $j('#msg').hide();//此處$j就代表JQuery使用如上代碼,自此以后$就代表prototype.js中定義的$,jquey.js中的$無法再使用,只能使用$j來作為jquey.js中JQuery的別名了。
轉(zhuǎn)載于:https://www.cnblogs.com/never-giveUp/p/3795296.html
總結(jié)
以上是生活随笔為你收集整理的query和prototype库冲突的解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: struts2与struts1整合,ja
- 下一篇: 经典ICP算法的问题