私はプロトタイプとMootoolsの両方のAJAXスクリプトを使用するページを持っています。プロトタイプ/ Mootoolsコンフリクトの質問
プロトタイプのMootoolsがはるかに多いので、プロトタイプにjQueryの$j = jQuery.noConflict();
と似た機能があり、プロトタイプの$エイリアスを再定義できますか?
ありがとうございます!
私はプロトタイプとMootoolsの両方のAJAXスクリプトを使用するページを持っています。プロトタイプ/ Mootoolsコンフリクトの質問
プロトタイプのMootoolsがはるかに多いので、プロトタイプにjQueryの$j = jQuery.noConflict();
と似た機能があり、プロトタイプの$エイリアスを再定義できますか?
ありがとうございます!
は無競合モードがあります。残念なことに、Prototypeはそうではありません。つまり、$
はPrototypeにバインドする必要があります。
ドルサ安全モードを有効にするには、MooToolsのバージョンをアップグレードし、Prototypeの後にMooToolsを含めるようにしてください。
<script type="text/javascript" src="prototype.js" />
<script type="text/javascript" src="mootools.js" />
このようにした後、$
はPrototypeに結合する。 MooToolsスクリプトでは、document.id
への参照をすべて$
に置き換えてください。
// Before
var X = new Class({
initialize: function(element){
this.element = $(element);
}
});
// After
var X = new Class({
initialize: function(element){
this.element = document.id(element);
}
});
か、クロージャを使用することができますドルセーフモードの
(function(){
var $ = document.id;
this.X = new Class({
initialize: function(element){
this.element = $(element);
}
});
})();
詳しい情報はMooToolsのブログで提供されています:
私は本当に簡単な解決策があります:MooToolsは最新バージョンの
<script src='mootools.js'></script>
<script>$moo = $; delete ($);</script>
<script src='prototype.js></script>
<script>
(function ($){
//here you can use $ of moo tools
})($moo);
//here you can use $ of prototype
</script>
おかげで、Iプロトタイプがこれと似たものを望んでいたのは、それがはるかに小さな実装であったからです。自然に、決してとても幸運ではありません。 – Marty
200kbの(圧縮された)ライブラリが欲しくないと私は同意しますが、MooToolsの67kb圧縮は非常に尊敬されます。サイズに基づいて選択するのではなく、機能性に基づいて選択します。 MooToolsはPrototypeのすべてのことを行い、Prototypeを削除することをお勧めします。また、ウェブサイトを使用してMooToolsのカスタムビルドを行い、必要のないものを削除してください。 –