2009-09-09 104 views
15

如果一個頁面同時擁有JQuery和Prototype,那麼我會發生衝突。有一個選項可以禁用JQuery的$符號,所以沒有衝突,但是,我必須使用關鍵字JQuery而不是$。如何避免JQuery和原型之間的衝突

我不知道是否有任何原型來解決這個衝突的選項。有沒有什麼辦法可以同時使用這兩個庫而不損害他們的好處或簡短的關鍵字?

據我所知,對同一頁面使用多個JS庫並不是一個好主意;但有時可能會有所幫助。

+0

確保您的原型 – 2009-09-09 19:00:46

+0

我想,這已經是最問jQuery的問題:) – 2009-09-09 22:00:44

回答

34

對jQuery使用noConflict方法並將其分配給新的(短)變量。無論你使用jQuery的$哪個地方使用新的變量。或者,如果你不需要混合Prototype/jQuery,你可以將所有的jQuery代碼包裝在一個匿名函數中。

(function($) { 
    // $ sign here is a parameter, which is set to jQuery 

    $(function() { 
     $('#selector').each(....); 
    }); 
})(jQuery); 
+0

一個是否有任何特定的順序是jQuery的已被列入(第一之前加載了jQuery,最後,等)爲你的任何代碼示例? – 2009-09-09 19:22:00

+0

如果您使用noConflict,則在您調用它之前(顯然)必須包含jQuery,就像定義$的其他庫一樣。看到這個頁面的更多信息:http://docs.jquery.com/Using_jQuery_with_Other_Libraries – tvanfosson 2009-09-09 19:30:36

+0

@tvanfosson 我不知道一個變量可以分配,很好的訣竅:)呃......我知道第二種技術,但不喜歡它:(它讓我很容易混淆。謝謝你的時間:) – Sadi 2009-09-09 19:31:04