眾所周知,在jQuery語法中,$符號是jQuery的簡寫方式。但在某些情況下,可能需要在同一個頁面引入其他javascript庫(比如Prototype)。因為$簡短方便,很多的庫也是使用$符號。為了避免名稱衝突,jQuery提供了noConflict()方法來解決這個問題。調用該方法可以把對$標 ...
眾所周知,在jQuery語法中,$符號是jQuery的簡寫方式。但在某些情況下,可能需要在同一個頁面引入其他javascript庫(比如Prototype)。因為$簡短方便,很多的庫也是使用$符號。為了避免名稱衝突,jQuery提供了noConflict()方法來解決這個問題。調用該方法可以把對$標識符的控制權讓給其他庫。
一般模式:
<script src="prototype.js"></script>//1.包含jQuery之外的庫(比如Prototype) <script src="jquery.js"></script>//2.包含jQuery庫取得對$的使用權 <script> jQuery.noConflict();//3.調用noConflict()方法,讓出$,把控制權讓給最先包含的庫 </script> <script src="myscript.js"></script>
讓出$控制權後,需要使用jQuery方法時,則不能用$來調用了,要用jQuery。或者通過定義新的名稱來代替$符號。
var jq=jQuery.noConflict();
另外還有一個技巧,可以再.ready()方法中使用$。它的回調函數可以接收一個參數,這個參數為jQuery對象本身,可以重新命名jQuery為$,這樣也是不會造成衝突的。
jQuery.(document).ready(function($){ //這裡可以正常使用$ })
當然,簡寫方式也是可以的
jQuery(function($){ //這裡可以正常使用$ })