From fc3e180465a88558321b6550ac4692d7cc4b281f Mon Sep 17 00:00:00 2001 From: John Resig Date: Wed, 22 Aug 2007 05:44:47 +0000 Subject: [PATCH] Made 'jQuery' unrollable via .noConflict(true) and instances of new Function() have been converted to eval(function(){}) in order to handle jQuery name changes. (Bug #1393) --- src/jquery/jquery.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index dfe55bc0..7c0562aa 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -19,6 +19,11 @@ * @param jQuery|Element|Array c context * @cat Core */ + +// Map over jQuery in case of overwrite +if ( typeof jQuery != "undefined" ) + var _jQuery = jQuery; + var jQuery = window.jQuery = function(a,c) { // If the context is global, return a new object if ( window == this || !this.init ) @@ -29,7 +34,7 @@ var jQuery = window.jQuery = function(a,c) { // Map over the $ in case of overwrite if ( typeof $ != "undefined" ) - jQuery._$ = $; + var _$ = $; // Map the jQuery namespace to the '$' one window.$ = jQuery; @@ -1345,9 +1350,10 @@ jQuery.extend({ * @type undefined * @cat Core */ - noConflict: function() { - if ( jQuery._$ ) - $ = jQuery._$; + noConflict: function(deep) { + window.$ = _$; + if ( deep ) + window.jQuery = _jQuery; return jQuery; }, @@ -1851,7 +1857,7 @@ jQuery.extend({ // If a string is passed in for the function, make a function // for it (a handy shortcut) if ( typeof fn == "string" ) - fn = new Function("a","i","return " + fn); + fn = eval("function(a,i){return " + fn + "}"); var result = []; @@ -1905,7 +1911,7 @@ jQuery.extend({ // If a string is passed in for the function, make a function // for it (a handy shortcut) if ( typeof fn == "string" ) - fn = new Function("a","return " + fn); + fn = eval("function(a){return " + fn + "}"); var result = [];