1

您好我需要Mootools來獲取我的計時碼錶,我的lightbox 2原型(我認爲),也許還有一些未來的jQuery。
當我啓用Mootools時,燈箱2不能在IE中工作,當我禁用它時,燈箱工作正常,但我從我的chronoforms窗體在我的頁面上出現錯誤。Joomla中的jquery,mootools和原型

有沒有一種簡單易行的方法可以確保您在使用三者時不會出現任何問題?

而類似JQuery.noConflict()不是一個簡單的解決方案。

回答

3

您不能讓MooTools和Prototype共存。

這是因爲它們都改變(延長)本地主機對象(類型),如Element(MooTools的)和ArrayFunctionStringNumber(兩者)。你不能noConflict這對於你的生活,每個方法都可以定義一次。

這將是家常便飯,當你引用"foo".contains('oo')和它去String.prototype.contains(例如),如果你拿到的樣機的,Mootools的或ES5的實現(MooTools的1.5.1+)。

有時間重新考慮你使用什麼,因爲你真的應該去一個框架 - 他們都可以單獨做你需要的。

你也可以有MooTools的+ jQuery的或原型+ jQuery的,但是

+0

謝謝你,讓我更好的下載slimbox 2和通過MooTools togheter使用它(大量的Joomla插件使用它)。我如何使用noconflict,是否必須將每個$都更改爲JQuery? – Ruben 2011-04-18 12:47:15

+0

取決於你的版本的mootools。如果你使用的是mootools 1.2.3+,那麼它很簡單。在加載mootools之前加載jquery,mootools將使用'document.id()'代替$。如果你使用的是較老的mootools,那麼你需要'noConflict',你需要在之後加載jquery。將$改爲jQuery可以工作或者使用像'(function($){console.log($); // jQuery})(jQuery)這樣的閉包;'圍繞你的代碼 - 將$賦值給它應該在函數內部。只要小心範圍管理。如果mootools轉到document.id,則相反,只需傳遞上面的document.id即可。 – 2011-04-18 13:04:26

+0

感謝人,它的工作原理沒有改變任何東西,所以jquery可能在mootools之前加載。 – Ruben 2011-04-18 13:09:07