読者です 読者をやめる 読者になる 読者になる

jQuery の複数バージョンを同時使用する

memo JavaScript

http://stacktrace.jp/jquery/with_other_lib.html#other_version


noConflictの引数にtrue渡せばいいと。

<html>
<head>
    <script type="text/javascript" src="jquery-1.2.6.js"></script>
    <script type="text/javascript" src="jquery-1.4.2.js"></script>
    <script type="text/javascript">
        // $ 関数および jQuery関数の上書きを元に戻します。
        var $j = jQuery.noConflict(true);

        // $ は jQuery ver1.2.6を参照します。
        alert($.fn.jquery);      // => 1.2.6

        // jQuery は jQuery ver1.2.6を参照します。
        alert(jQuery.fn.jquery); // => 1.2.6

        // $j は jQuery ver1.4.2を参照します。
        alert($j.fn.jquery);     // => 1.4.2
    </script>
</head>
<body></body>
</html>

noConflictって他のライブラリとの併用だけでなく、jQueryの複数バージョンもOKだったんですね。
1.8.2で実装を確認してみました。

//............................................
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,

// Map over the $ in case of overwrite
_$ = window.$,
//......................................
jQuery.extend({
	noConflict: function( deep ) {
		if ( window.$ === jQuery ) {
			window.$ = _$;
		}

		if ( deep && window.jQuery === jQuery ) {
			window.jQuery = _jQuery;
		}

		return jQuery;
	},
//.........................
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
//........................

true渡すと window.$だけじゃなく、window.jQueryも _jQueryに保持されている古いjQueryオブジェクトを参照するようにしてますね。