X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=4c5941b20afa1762c4894e19244b58a47c11f388;hb=257eaf7ee32df66ddd0a3333a5b6a829b9d388ef;hp=9eb8377e135f5ea958f4efd9bc594f22524a38f6;hpb=c8bd6e0a4aef14ad4808a63fc106849918ea4666;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 9eb8377..4c5941b 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,11 +34,13 @@ 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; +var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; + /** * This function accepts a string containing a CSS or * basic XPath selector which is then used to match a set of elements. @@ -150,22 +157,39 @@ jQuery.fn = jQuery.prototype = { // Make sure that a selection was provided a = a || document; - // HANDLE: $(function) - // Shortcut for document ready - if ( jQuery.isFunction(a) ) - return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a ); - // Handle HTML strings if ( typeof a == "string" ) { - // HANDLE: $(html) -> $(array) - var m = /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a); - if ( m ) - a = jQuery.clean( [ m[1] ] ); + var m = quickExpr.exec(a); + if ( m && (m[1] || !c) ) { + // HANDLE: $(html) -> $(array) + if ( m[1] ) + a = jQuery.clean( [ m[1] ] ); + + // HANDLE: $("#id") + else { + var tmp = document.getElementById( m[3] ); + if ( tmp ) + // Handle the case where IE and Opera return items + // by name instead of ID + if ( tmp.id != m[3] ) + return jQuery().find( a ); + else { + this[0] = tmp; + this.length = 1; + return this; + } + else + a = []; + } // HANDLE: $(expr) - else + } else return new jQuery( c ).find( a ); - } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction(a) ) + return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a ); return this.setArray( // HANDLE: $(array) @@ -1326,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; }, @@ -1409,7 +1434,7 @@ jQuery.extend({ fn.call( obj[i], i, obj[i] ); else for ( var i = 0, ol = obj.length, val = obj[0]; - i < ol && fn.call(val,i,val) !== false; val = obj[++i] ); + i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){} } return obj; @@ -1832,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("false||function(a,i){return " + fn + "}"); var result = []; @@ -1886,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("false||function(a){return " + fn + "}"); var result = []; @@ -2397,6 +2422,7 @@ jQuery.each( { * @param String str The string that will be contained within the text of an element. * @cat DOM/Traversing */ +// DEPRECATED jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){ jQuery.fn[ n ] = function(num,fn) { return this.filter( ":" + n + "(" + num + ")", fn );