jQuery 我的「 」我做主

2021-09-20 14:41:18 字數 1113 閱讀 8068

前些天朋友讓我幫他解決乙個頁面中jquery特效的相容性問題,覺得這是乙個很容易忽略也很重要的一點,特在此記錄一下。

通過一點點的排查,我發現那兩個可以顯示的特效引用的是jquery,而不顯示的那個特效引用的是這個prototype.js。 稍一分析,終於找到了出錯的關鍵:

jquery中的$和prototype.js中的$衝突了

,兩個類庫中都是通過$符號來呼叫,然而如果直接這樣寫的話就會不知道這個$是屬於誰的,該呼叫哪個類庫中的方法來實現特效的顯示。

既然找到了問題的根結所在,那這個問題也就好解決了。

方法一:在jquery中,有這樣一段**:

//expose jquery to the global object

也就是說,我們可以通過jquery來代替jquery.js中的$符號進行呼叫,前提必須宣告一下:

jquery = $; 

那,新的問題又出現了。頁面中有那麼多地方用到了$,我不僅要區分到底哪些$是屬於jquery的,還要將這些$替換成jquery這個單詞,更嚴重的是,如果該頁面中要增加新的jquery特效,我還要時刻的提醒自己,呼叫$的時候要用jquery來代替,稍一疏忽,不僅出不來想要的效果,而且修改起來也是乙個大工作量的任務。看來,這種方法是行不通的。

難道就沒有乙個一勞永逸的方法可以將這個$的"歸屬權"給明確的區分出來嗎?辦法當然是有的!

方法二:使用jquery語句塊來實現:

首先,來看一下jquery語句塊的格式: (

function

($){ 

..... 

$('#msg').show();

//此時在這個語句塊中使用的都是jquery.js中定義的$. 

這樣,我們在呼叫jquery中的$實現特效顯示時,只要把這段**寫在這個語句塊中,$符號該怎麼呼叫還怎麼呼叫。而prototype.js中的$寫在語句塊外,$符號也是該怎麼呼叫怎麼呼叫,兩者根本不會產生什麼影響了。

希望這個方法也能給遇到相同問題的其他人帶來幫助!

附:參考: 

jquery的$命名衝突:

prototype.js 1.4版開發者手冊(強烈推薦)  

js中prototype詳解

prototype.js常用函式詳解

我的生活我做主!8 20

8月20日 我想我要改改blog中工作日誌的名字了,叫生活日誌更好一些吧,畢竟工作也是一種生活。要堅持天天寫點什麼確實很不容易,再加上現在的心情比較浮躁,實習也沒有什麼頭緒,也沒有什麼進展。還有就是我寫blog的語言太隨意了,文學功底不好啊!今天冒著大雨來公司,也沒有做什麼,相當於發了一天的呆 昨天...

我的人生我做主

這個問題思索了很久,我們活著到底為了什麼?我們又該如何生活?我到現在也沒有找到自己想要的答案,我只知道不想像現在這樣機械的活著。每個人其實都有理想,只是這個理想的實現又太多的被現實所左右。我時常想,只有當所有物質的利益全部都被拋下或是全部都被滿足時,人才能夠發揮最大的潛能,將所有精力都投入到創造之中...

我的人生我做主

在這現代的繁忙都市中,你是否已經飛得太高,遠離了生活,遠離了細膩,遠離了最初的往事 其實,你可以留心觀察發芽的小草,留心傾聽花開的聲音,留心風箏如何在空中飄搖,留心清風如何在夜裡拂過樹梢,笑逐顏開看著廳前的花開花落,醉眼矇朧欣賞天上的雲卷雲舒。生命本身就是一種對心靈的滌蕩,風物長宜放眼量 去追尋長久...