2016年1月14日實習日誌

今天在改一個上古時期的網站,其中遇到了一個很尷尬的問題,就是jq語句無法應用,不明所以,明明已經引入了,可是總是失效。
後來,網上查資料終於知道了原因:
原來是其他的js 覆蓋了jquer 的$ 符號,然後查找方法。

一.使用JQuery.noConflict()
該方法的作用就是讓Jquery放棄對 的控制權交還給prototype.js,因爲jquery.js是後引入的,所以最後擁有jqueryJQuery調使 來調用jquery的方法了,此時prototype.js 了。如下:

JQuery.noConflict();

//此處不可以再寫成('#msg').hide(),此時的 代表prototype.js中定義的
JQuey('#msg').hide();後 就代表prototype.js中定義的,jquery.js 無法再使用,只能使用jquery.js中$的全稱JQuery了。

二.自定義JQuery的別名
如果覺得第一種方法中使用了JQuery.noConflict()方法以後,只能使用JQuery全稱比較麻煩的話,我們還可以爲JQuery重定義別名。如下:
var j=JQuery.noConflict(); j(‘#msg’).hide();
//此處$j就代表JQuery

自此以後prototype.js ,jquey.js中的使,使 j來作爲jquey.js中JQuery的別名了。

三.使用語句塊,在語句塊中仍然使用jquery.js中定義的$,如下:

JQuery.noConflict();
JQuery(document).ready(function($){
$('#msg').hide();//此時在整個ready事件的方法中使用的$都是jquery.js中定義的$.
});

或者使用如下語句塊:

(function($){
.....
$('#msg').hide();//此時在這個語句塊中使用的都是jquery.js中定義的$.
})(JQuery) 

方法來着:百度知道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章