X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=dfe55bc023db693503e04cda39eb8550820c4883;hb=b99fd476d07e737274c132a8e938cda73cf26377;hp=a79b2e6b2f83c6f3af48a8c3aefedfc5d66c9d5c;hpb=e112e6b04d1736d3a847d44b96f7178175e17a15;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index a79b2e6..dfe55bc 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -9,9 +9,6 @@ * $Rev$ */ -// Global undefined variable -window.undefined = window.undefined; - /** * Create a new jQuery Object * @@ -22,7 +19,7 @@ window.undefined = window.undefined; * @param jQuery|Element|Array c context * @cat Core */ -var jQuery = function(a,c) { +var jQuery = window.jQuery = function(a,c) { // If the context is global, return a new object if ( window == this || !this.init ) return new jQuery(a,c); @@ -35,7 +32,9 @@ if ( typeof $ != "undefined" ) jQuery._$ = $; // Map the jQuery namespace to the '$' one -var $ = jQuery; +window.$ = jQuery; + +var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; /** * This function accepts a string containing a CSS or @@ -153,22 +152,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) @@ -1260,7 +1276,7 @@ jQuery.extend = jQuery.fn.extend = function() { // Handle a deep copy situation if ( target.constructor == Boolean ) { - deep = true; + deep = target; target = arguments[1] || {}; } @@ -1527,7 +1543,7 @@ jQuery.extend({ } if (prop.match(/float/i)) - prop = jQuery.styleFloat; + prop = styleFloat; if (!force && elem.style[prop]) ret = elem.style[prop]; @@ -1940,29 +1956,31 @@ jQuery.extend({ * @type Boolean * @cat JavaScript */ -new function() { - var b = navigator.userAgent.toLowerCase(); - - // Figure out what browser is being used - jQuery.browser = { - version: (b.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], - safari: /webkit/.test(b), - opera: /opera/.test(b), - msie: /msie/.test(b) && !/opera/.test(b), - mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b) - }; +var userAgent = navigator.userAgent.toLowerCase(); + +// Figure out what browser is being used +jQuery.browser = { + version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], + safari: /webkit/.test(userAgent), + opera: /opera/.test(userAgent), + msie: /msie/.test(userAgent) && !/opera/.test(userAgent), + mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) +}; +var styleFloat = jQuery.browser.msie ? "styleFloat" : "cssFloat"; + +jQuery.extend({ // Check to see if the W3C box model is being used - jQuery.boxModel = !jQuery.browser.msie || document.compatMode == "CSS1Compat"; - - jQuery.styleFloat = jQuery.browser.msie ? "styleFloat" : "cssFloat"; - - jQuery.props = { + boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat", + + styleFloat: jQuery.browser.msie ? "styleFloat" : "cssFloat", + + props: { "for": "htmlFor", "class": "className", - "float": jQuery.styleFloat, - cssFloat: jQuery.styleFloat, - styleFloat: jQuery.styleFloat, + "float": styleFloat, + cssFloat: styleFloat, + styleFloat: styleFloat, innerHTML: "innerHTML", className: "className", value: "value", @@ -1971,9 +1989,8 @@ new function() { readonly: "readOnly", selected: "selected", maxlength: "maxLength" - }; - -}; + } +}); /** * Get a set of elements containing the unique parents of the matched