PrototypeとjQueryの両方から$ functionを統一できるJavaScript関数はありますか?
はい、これは私が直面している実際の使用例です。 Prototypeで$ functionが見つかりました.jQueryで$がお互いに矛盾しています。私は、jQuery.noConflict()を使ってPrototypeに$を再登録することができることを知っていますが、その$関数を使用するjQuery固有のjavacriptコードを書き直すか、コードブロックに固有のjqueryを持たなければなりません。匿名機能)。
既存のコードを両方のライブラリに書き直して1つのページに入れなくても簡単な方法はありますか?この質問に答えることができ
コードは次のように見えるかもしれ、そしてあなたのフィードバックが大幅に高く評価されています
<script type="text/javascript" src="/path/to/prototype.js"></script>
<script type="text/javascript" src="/path/to/jquery.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var $j = jQuery.noConflict();
var $p = $; // reference to prototype's $
var $ = function(E, F){
var isJQuery = true;
//TODO: logic to determine which $ to use here YOUR SUGGESTION HERE ;-)
var result = null;
if(isJQuery){
result = $j(E, F);
} else { // prototype
//TODO: code to delegate prototype $
}
return result;
}
/* ]]>*/
</script>
// ... any existing javacode jQuery and Prototype using $ function.
感謝を。
更新:質問をより明確に書き直してください。
この回答をお寄せいただきありがとうございます。さまざまなアプローチを試してから約1週間後、私はこのアプローチが最も適切な解決策であることを発見しました。 (1)jQuery $は上記のような匿名関数内に記述してください。 (2)上記の匿名関数のプロトタイプ$を直接呼び出すことはできません。 これは2つの問題点ですが、このソリューションは私が持っているほとんどのユースケースに最適です。 ありがとうございます。 – Nordin