2010-06-14 50 views
0

我想使用mootools庫來做動畫& ajax在我正在構建的小部件中。在小部件中使用mootools庫時的兼容性?

我打算讓小部件自己寫入頁面,這樣最終用戶只需部署一行javascript。

我很擔心如果我的小部件在已經使用另一個庫的頁面上使用時可能出現的兼容性問題。

如果scriptaculous已經加載,短測試即使封裝在自執行函數中也會顯示問題,儘管jquery似乎不會導致問題。

這是最好的解決方案是什麼?

是否有任何方法來隔離加載mootools,以便我可以將它用於我的目的?

我看到jquery雖然對我來說不熟悉,但是名稱空間很大,因此可能更適合於該任務,會使用它而不是緩解任何潛在問題?

我可以只複製粘貼到我的自我執行功能的mootools?

nb:使用原型時出現以下錯誤是由於使用mootool的setStyle方法造成的。

element.style is undefined

element.style.cssText += ';' + styles;

回答

1

沒有使用mootools的方法。開發人員明確表示,他們不會使用命名空間mootools來運行側邊原型,而是壓縮任何試圖讓核心改變的地方(參見1)。

你真的只是使用jQuery或其他名稱空間庫(我相信Dojo和YUI都是,但我可能會誤),或者如果你不需要開銷,只需建立你自己的舊的 - 時尚JS。

  1. https://mootools.lighthouseapp.com/projects/2706/tickets/219-mootools-namespace
1

你不能 「命名空間」 的mootools。它是一個典型的圖書館。您似乎表明您正在嘗試將其與prototype結合使用 - 截至撰寫文章時,這仍然是一個典型庫(有人說他們正在離開這個庫)。

基本上兩個這樣的框架彼此並排將具有完全不可預知的結果,但不能保證哪個庫的方法將優先於它們改變的任何原型。

mootools可以與jquery或任何其他功能正常的lib愉快地共存。它還會查找已定義$的任何內容,並且如果不可用(例如,因爲$ === jQuery),它將恢復爲使用document.id()。

如果您的網頁已經使用scriptaculous,那麼您應該使用該功能(在理想的世界中)進行效果處理。下一個最好的東西,你可以嘗試jquery但是這討厭的一個簡單的小部件的緣故(或2個框架)

順便說一句,用AddThis部件包含mootools的一段時間回來,並沒有打破任何網頁它嵌入,所以我認爲它是可行的。遺憾地爲你,他們似乎已經轉移到自己的香草庫現在...