2011-07-28 7 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

短い答え:これら2つのフレームワークをネイティブを拡張するので、これら2つのフレームワークを一緒に使用することは不可能です。期間。 –

答えて

0

なぜでも、にプロトタイプとmootoolsを一緒に使用したいと思うかどうかはわかりません。これは確かにフレームワークの悪用と見なされます...一つを選び、それに固執してください。どちらかを選ぶことができない場合は、フレームワークがまったく必要でないという基本的な前提から始めて、そこからあなたのニーズに合ったものを決定してください。 1つ(または複数)を使用することは、それが悪い計画であるためです。

両方のフレームワークは、DOMを拡張することによってその機能を達成するため、競合が発生するのは驚きではありません。両方とも、拡張機能のエントリポイントとして$を使用します。フレームワークをスタックするときに得られる機能の重複は、それらを併用することをほとんど排除します。必要のないコードをロードする際の追加のオーバーヘッドを気にする必要はありません。

すべてのことは、this articleをチェックアウトすることができます。これは他のフレームワークとの互換性/競合解決のためのmootoolsの勧告です。この記事の最初の段落では、著者が私がここにあるのと同じ警告を与えていることに気づくでしょう - フレームワークをスタックしないでください。これがあなたの唯一の選択肢である非常に特殊な状況は非常に少なく、そうでなければ、なぜこのアプローチをとっているのかを真剣に検討する必要があります。

+0

クリス、ありがとう、私はあなたには1つのFWに固執することに同意しますが、この移動(Phatfusion Image Menu)はmootoolsでのみ作成されています。また、JQueryでも確認できますが、プロトタイプではありません。私はその記事をチェックしましたが、今は私のmootoolsでそれを使う方法を知っていました。私は関数内でtow $を持っているので、両方をdocument.idに置き換えていますか?それは動作しません!また、私はJQueryバージョン(Phatfusion Image Menu)を使用し、No.Conflictを使用しようとしましたが、それを作成しませんでした:( –

+0

私が言っているのは、あなたが使用している別のメニューシステムを見つけるべきです既に使用しているフレームワークで、必要な機能を提供しています。見つからない場合は、フレームワークを再検討するか、メニューから必要な機能を再検討する必要があります。あなたに合った、あらかじめ構築されたプロトタイプスクリプトが見つからない場合は、一緒にmootoolsに移動してみませんか?私がDodgeピックアップトラックを運転して部品が必要な場合、私はフォードアクセサリーを購入しません。彼らは私のトラックに合わないので、私も見ません。同様に、プロトタイプを使用しているときは、mootoolsを購入しないでください。 –