2012-06-14 18 views
1

我正在使用兩個jQuery腳本。一個用於控制站點上的下拉導航,另一個用於幻燈片放映。如何正確使用jQuery NoConflict?

該一個模塊前面帶有此代碼:

jQuery.noConflict(); 
(function($){ 
$.fn.dropmenu = function(custom) 

另一種啓動這樣的:

$(document).ready(function() { 

因此,所有的在第二個中的功能顯示爲「不函數「

因爲我使用的兩個腳本都是jQuery,所以我應該能夠擺脫NoConflict函數,並且這兩個腳本可以很好地一起玩。

歡迎賢者諮詢。

回答

2

通常$()jQuery()相同。 noConflict'從jquery'釋放$,所以它可以被其他庫使用。 因此,您可以隨處使用jQuery而不是$

或者你可以不喜歡它,他們表現出他們的examples並再次通過jQuery成一個匿名函數中,您可以使用$像往常一樣:

jQuery.noConflict(); 
(function($) { 
    $(function() { 
    // more code using $ as alias to jQuery 
    }); 
})(jQuery); 
// other code using $ as an alias to the other library 

所以,在你的榜樣的問題是,第一個插件調用noConflict(),所以$不能被第二個插件使用。

您可以通過將$(document).ready()內的所有內容放在(function($){內部來解決此問題。

如果你不需要它(如果你沒有使用任何其他使用$的庫),你可以完全擺脫noConflict

+0

優秀的解釋。感謝您花時間澄清這一點。 – fmz