2010-05-14 23 views
0

我一直在使用Mootools 1.2.4作爲我選擇的JS框架。我已經將Amazon的Checkout添加到了我的一個頁面中,他們將jQuery 1.2.6注入到頁面中,並弄亂了我的美元函數(等等)。如何讓jquery和mootools玩得好?

我可以控制Mootools,但不能控制jQuery。我寧願不重寫我現有的代碼來容納jQuery,因爲Amazon的Checkout是一個事後和插件元素。

推薦任何想法或建議。謝謝!

回答

2

看看jQuery.noConflict()。如果他們已經正確編寫了他們的代碼,它將不會依賴在全球範圍內可用的$

對於您自己的代碼,您可以通過將所有代碼封裝在閉包中來針對此類問題加強它。我不知道原型的$功能的全名是什麼,但我會以爲這是Prototype

alert ($ instanceof jQuery); // true 

(function($) { 
    alert ($ instanceof Prototype); // true 
    // put all your Prototype code here 

})(Prototype); 

編輯:唔,有「MooTools的」替換「原型」 ...大腦不今天工作

+0

非常感謝。 noConflict正是我所需要的。至於函數封裝,我會寫我的代碼來適應它。僅供參考MooTools命名空間是document.id 再次感謝! – Vic 2010-05-14 03:44:12

+0

如果你使用命名空間mootools(如果jquery自動使用它,它不會觸及$),那麼你不需要使用noConflict jquery,只有其中一個真正需要保持$,而不是兩個同時:) – 2010-05-14 09:38:45