2011-02-26 32 views
4

我正在寫一個應用程序在使用jQuery的那一刻。它適用於使用原型的現有應用程序,所以顯然我不能立即使用美元符號。JQuery - 沒有衝突或關閉

我一直在使用noconflict來解決這個問題,但想不出我只是換我傳遞的jQuery封閉內整個腳本,如:

(function($){ 

})(jQuery); 

這似乎是工作,但如果有任何後果我想知道對此?

回答

1

這應該可以正常工作,因爲您將jQuery作爲jQuery對象本身傳遞給閉包。

儘管應該仍然指定noConflict,否則jQuery對象可以控制美元符號。調用noConflict會將美元符號傳遞迴已經使用它的任何東西。

的文件表明,這太:

$.noConflict(); 
    jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
    }); 
    // Code that uses other library's $ can follow here. 
0

這會像一個魅力,只要你不需要訪問的塊中定義的變量。

Jquery插件通常使用這個精確的屏蔽結構進行編碼。

如果可以,請使用它來代替noConflict,因爲noConflict會強制您更加註意頁面中的腳本排序。

您將需要在jquery之後加載原型,以便它可以獲取$符號的所有權。

0

noConflict()重置jQuery用其原始值設置的所有變量。不要說:

$(document).ready() 

你剛纔說

jQuery(document).ready() 
6

您可以同時使用:

(function($){ 

})(jQuery.noConflict());