2009-09-09 4 views
15

ページにJQueryとPrototypeの両方がある場合、競合が発生します。競合がないようにJQueryの$ signを無効にするオプションがありますが、$の代わりにキーワードJQueryを使用する必要があります。JQueryとプロトタイプの競合を回避する方法

この競合を解決するためのPrototypeのオプションがあるのだろうかと思います。彼らの利益や短いキーワードを妥協することなく、両方のライブラリを使用する方法はありますか?

私が知る限り、同じページに複数のJSライブラリを使用することはお勧めできません。時には役に立つかもしれません。

+0

あなたは私はこれが最もjQueryの質問:) –

+0

前にjQueryをロードしてくださいjQueryのなど、最初の(含まれる最後なければならないこと、特定の順序はあります)のいずれかのコード例ですか? –

答えて

34

jQueryのnoConflictメソッドを使用して、新しい(短い)変数に割り当てます。新しい変数は、$ for jQueryを使用したときはいつでも使用してください。

var $j = jQuery.noConflict(); 

$j(function() { 
    $j('#selector').each(....); 
}); 

か、あなたはプロトタイプ/ jQueryのを混在させる必要がない場合は、匿名関数であなたのjQueryコードのすべてをラップすることができます。

(function($) { 
    // $ sign here is a parameter, which is set to jQuery 

    $(function() { 
     $('#selector').each(....); 
    }); 
})(jQuery); 
+0

の一つであることを持っていることを考えていたプロトタイプ –

+0

noConflictを使用する場合、$を定義する他のライブラリと同じように、jQueryを呼び出す前に(明らかに)jQueryをインクルードする必要があります。詳細についてはこのページを参照してください: – tvanfosson

+0

@tvanfosson 変数を割り当てることができませんでした。素敵なトリック:) Uhh ...私は2番目の手法について知っていますが、それは好きではない:(それは私が簡単に混乱させる。あなたの時間をありがとう:) – Sadi

関連する問題