2011-07-28 121 views
0

這是我的代碼,它保持不起作用,如果我刪除原型腳本文件,mootools的工作,如果我刪除mootools原型的作品!這是代碼:mootools和原型衝突

<script type="text/javascript" src="js/mootools.js"></script> 
<script type="text/javascript" src="js/imageMenu.js"></script> 
<script type="text/javascript" src="js/prototype.js"></script> 

<script type="text/javascript"> 

      window.addEvent('domready', function(){ 
       var myMenu = new ImageMenu($$('#imageMenu a'),{openWidth:310, border:2, onOpen:function(e,i){alert(e);}}); 
      }); 
</script> 

它的重要一提的是,當我嘗試過一次,原型MT但Ajax.Updater的共同工作中的原型還是不行。

我確實檢查了大部分關於該問題的主題,但仍然失敗!

+1

簡短回答:這兩個框架不可能同時使用,因爲它們都擴展了Natives。期。 –

回答

0

我不確定爲什麼你甚至想要想要一起使用原型和mootools。這肯定會被視爲濫用框架......選擇一個並堅持下去。如果你不能在其中選擇一種,那麼首先假定你甚至需要一個框架,然後從那裏決定哪一個適合你的需求。使用一個(或幾個)僅僅是爲了實現它是一個糟糕的計劃。

這兩個框架都通過擴展DOM來完成它們的功能,因此衝突並不令人意外。兩者都使用$作爲其擴展功能的入口點。堆棧框架獲得的功能重複數量幾乎排除了同時使用它們,不用擔心在加載大量不需要的代碼時會產生額外開銷。

所有這一切,你可以檢查出this article。這是mootools建議的與其他框架的兼容性/衝突解決方案。您會注意到,在文章的第一段中,作者給出了與我在這裏相同的警告 - 不堆疊框架。只有極少數情況下,這是你唯一的選擇,否則你就必須考慮爲什麼你採取這種方法。

+0

謝謝克里斯,我同意你堅持只有一個FW,但問題在這裏,這個舉動(Phatfusion圖像菜單)只與mootools,我也檢查它也是由JQuery製作,但不是與原型。我點頭檢查那篇文章,但現在知道如何將它與我的mootools fucntion一起使用,我已經在函數中添加了$,以便將它們都替換爲document.id?它是行不通的!我也嘗試使用JQuery版本的(Phatfusion圖像菜單)並使用No.Conflict,但也沒有使它:( –

+0

我所說的,那麼,你應該找到一個不同的菜單系統,使用如果你找不到它,你應該重新考慮框架,或者b)重新考慮你需要的功能。如果您沒有找到適合您的預構建原型腳本,爲什麼不一起移動到mootools?如果我開着一輛道奇皮卡車,而且我需要一個零件,那麼我不會購買福特的配件 - 我甚至不會看他們,因爲它們不適合我的卡車。同樣,當你使用原型時,不要購買mootools。 –