2009-03-16 12 views
0

私はjqueryのコードの多くを持っているとプロトタイププロトタイプとjQueryの干渉

を使う少しの.jsスクリプトは、問題は、私はプロトタイプで$$メソッドを呼び出すしようとすると、私はエラーを得たです:$$ではありませんそれはjqueryのjQuery.noConflict();で行うことができるように私は、プロトタイプを使用するようにコードの一部を強制的に

$$('table.'+triggerClass).each(function(t){ 

がある$$の仕事の道を得るために長い手の方法を知りたい

を定義します

答えて

0

$$()はプロトタイプ関数なので、コードを「そのまま」残そうとすると、それを動作させることはできません*。あなたのコードを変更(および無競合モードではJQueryを置く)ことができる場合:

JQuery('table.'+ triggerClass).each(function(t){}) 

しかし、再びを使用すると、競合モードをトリガしませんしていない場合、ライブラリは$()に役立つだろう保証はありません。

*理論的には、予約を本当に残したいと思うなら、プロトタイプコードを壊すリスクで$$()をJQuery()にマップできます。

1

プロトタイプ用の$$()の長いバージョンがあるかどうかわかりません。しかし、私のアドバイスは、jQueryとPrototypeの両方を使用しないことです。私は理由のカップルのためにこれを言う:

  1. jQueryとプロトタイプは、ユーザーにとって大きなダウンロードを意味し、両方のかなり大規模なライブラリです
  2. jQueryとプロトタイプは、機能が重複がたくさんあるとがあるように起こっていますあなたが今いるような紛争の問題。

jQueryを使用するためにプロトタイプを使用しているlittle jsスクリプトを書き直すことをお勧めします。あなたの状況を考えれば、私はそれを勧めているわけではありません。

0

別の答えとして、両方を使用しないでください。プロトタイプは軽量のものには、jQueryはより複雑なものには最適です。

jQuery.noConflict(); 

してからちょうど新しい変数にjQueryオブジェクトを割り当てる:あなたは競合を取り除くために再マッピングjQueryの、言われていること

hereを参照してください。

関連する問題