jQueryとprototype.jsを簡単に共存

jQueryprototype.jsの両方を使うと衝突(コンフリクト)を起こします。
で、動作しません。


この場合、どのように対処すればいいのでしょうか。


jQueryには、jQuery.noConflict()という関数があります。
この関数で共存が可能です。


しかし共存の方法をぐぐると、jQuery.noConflict()を使った上で、jQueryプラグインのソースを書き換えるという説明しているページが多い……これは管理が面倒ですよ。


そこで、書き換えずに共存させる方法をご案内♪
Query日本語リファレンスのサンプル2が参考になります。


こちらのサンプルを参考に、以下のように書けば、OK。
1.prototype.jsを読む
2.jQueryを読む(1・2を逆にしてはいけません)
3.jQuery.noConflict()の{}の中に、jQueryプラグインの内容を書く。
 外部ファイルのままにしたい場合、PHP等で以下のようにして読込む。

<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"
 type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"
 type="text/javascript"></script>
<script type="text/javascript">
	jQuery.noConflict()(function($){
<?php
require_once '/home/***/js/****.js';	// jQueryのプラグインはPHPで読込む
?>
	});
</script>


これでOKです。
htmlのソースのなかに読み込んでしまうので、同じプラグインを複数のページで使っている場合、使い回せない(キャッシュが働かない)のが難ですが……(プラグインのサイズが大きいと厳しいですね)。しかしscriptの中で再度script srcで呼び出すことってできないから仕方ない……ですよね。もっといい方法があれば教えてください。





<参考>
当初は、以下のページの「追記」の部分を参考にしてました。
プラグインを一々書き換えないで済むという点は目から鱗でした。
しかし「});」で閉じてない上、プラグインをその外に書いてあるんですよね。
この延長では多分動かない……このページを参考にしたOKWaveの質問者も多分私と同じ結論に達したのだと思います。