2012-07-07 66 views
2

我只是改變了我的WordPress主題加載jQuery的方式,從手動加載谷歌的版本到加入WordPress的版本。 wordpress附帶的版本中有「noconflict()」,所以$快捷方式不再適用於我所有的jQuery,而是我需要在它的位置使用「jQuery」。切換到jQuery noconflict,我該如何修復代碼?

我在頁面上有很多.js腳本和很多jquery設置初始化,現在它們都不起作用,因爲它全部使用簡寫$。

我的問題是,假設我需要使用wordpress附帶的noconflict版本,修復我的速記代碼的最佳方法是什麼?

我應該像這樣在每個腳本的頂部添加一行嗎?

jQuery(document).ready(function($) { 

或者我應該「在文件中查找」所有$和替換爲jQuery?

回答

1

您可以使用立即執行的函數來創建名爲$的變量,該變量設置爲jQuery。這可以模擬之前切換到noconflict你有行爲:

(function(){ 

    var $ = jQuery; 

    //now use $ as you always have 

})(); 

OR

(function($){ 

    //now use $ as you always have 

})(jQuery); 
2

你可以進入一個立即執行的匿名函數jQuery對象和任何其他的API \對象要與沙箱內運行(功能):

(function($, window, undefined) { 


}(jQuery, window)); 

減輕李通過鎖定jQueryundefined和任何其他對您的代碼非常重要的API的實現來鎖定衝突的代碼。

+1

啊 - 整潔的 - 這是爲了保護'undefined'我從來沒有看到過的方式。 – 2012-07-07 23:12:40

+0

@AdamRackis yeap,我第一次看到它被使用在jQuery源代碼中http://code.jquery.com/jquery-latest.js – xandercoded 2012-07-07 23:15:15