X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjquery%2Fjquery.js;h=c3975e3023fe6ead726c856e864dd39617b59ecc;hb=805d21c2360a10fa5e7ac85cc593b4403afb6c9f;hp=28f4825e83c89a4ef6b0b198e2ef7371b07d8fb4;hpb=3f47d3b8f5b2623a3bf289ad4446d0eafd12413d;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 28f4825..c3975e3 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -38,11 +38,11 @@ function jQuery(a,c) { // Watch for when a jQuery object is passed as the selector if ( a.jquery ) - return $( jQuery.merge( a, [] ) ); + return jQuery( jQuery.merge( a, [] ) ); // Watch for when a jQuery object is passed at the context if ( c && c.jquery ) - return $( c ).find(a); + return jQuery( c ).find(a); // If the context is global, return a new object if ( window == this ) @@ -71,6 +71,108 @@ function jQuery(a,c) { // Map over the $ in case of overwrite if ( typeof $ != "undefined" ) jQuery._$ = $; + +/** + * This function accepts a string containing a CSS selector, + * basic XPath, or raw HTML, which is then used to match a set of elements. + * The HTML string is different from the traditional selectors in that + * it creates the DOM elements representing that HTML string, on the fly, + * to be (assumedly) inserted into the document later. + * + * The core functionality of jQuery centers around this function. + * Everything in jQuery is based upon this, or uses this in some way. + * The most basic use of this function is to pass in an expression + * (usually consisting of CSS or XPath), which then finds all matching + * elements and remembers them for later use. + * + * By default, $() looks for DOM elements within the context of the + * current HTML document. + * + * @example $("div > p") + * @desc This finds all p elements that are children of a div element. + * @before

one

two

three

+ * @result [

two

] + * + * @example $("

Hello

").appendTo("#body") + * @desc Creates a div element (and all of its contents) dynamically, and appends it to the element with the ID of body. + * + * @name $ + * @param String expr An expression to search with, or a string of HTML to create on the fly. + * @cat Core + * @type jQuery + */ + +/** + * This function accepts a string containing a CSS selector, or + * basic XPath, which is then used to match a set of elements with the + * context of the specified DOM element, or document + * + * @example $("div", xml.responseXML) + * @desc This finds all div elements within the specified XML document. + * + * @name $ + * @param String expr An expression to search with. + * @param DOMElement context A DOM Element, or Document, representing the base context. + * @cat Core + * @type jQuery + */ + +/** + * Wrap jQuery functionality around a specific DOM Element. + * This function also accepts XML Documents and Window objects + * as valid arguments (even though they are not DOM Elements). + * + * @example $(document).find("div > p") + * @before

one

two

three

+ * @result [

two

] + * + * @example $(document).ready( loaded ); + * @desc Executes the "loaded" function when the DOM is ready to + * be manipulated. + * + * @name $ + * @param DOMElement elem A DOM element to be encapsulated by a jQuery object. + * @cat Core + * @type jQuery + */ + +/** + * Wrap jQuery functionality around a set of DOM Elements. + * + * @example $( myForm.elements ).hide() + * @desc Hides all the input elements within a form + * + * @name $ + * @param Array elems An array of DOM elements to be encapsulated by a jQuery object. + * @cat Core + * @type jQuery + */ + +/** + * A shorthand for $(document).ready(), allowing you to bind a function + * to be executed when the DOM document has finished loading. + * + * @example $( loaded ) + * @desc Executes the function "loaded" when the DOM is ready to be used. + * + * @name $ + * @param Function fn The function to execute when the DOM is ready. + * @cat Core + * @type jQuery + */ + +/** + * A means of creating a duplicate copy of a jQuery object. + * + * @example var div = $("div"); + * $( div ).find("p") + * @desc Locates all p elements with all div elements, without disrupting the original jQuery object contained in 'div'. + * + * @name $ + * @param jQuery obj The jQuery object to be cloned. + * @cat Core + * @type jQuery + */ // Map the jQuery namespace to the '$' one var $ = jQuery; @@ -766,7 +868,7 @@ jQuery.fn = jQuery.prototype = { var old = this.get(); this.get( a ); if ( fn.constructor == Function ) - return this.each( fn ); + this.each( fn ); this.get( old ); } @@ -823,7 +925,7 @@ jQuery.extend({ var a = arguments; return this.each(function(){ for ( var j = 0; j < a.length; j++ ) - $(a[j])[n]( this ); + jQuery(a[j])[n]( this ); }); }; }); @@ -924,9 +1026,9 @@ jQuery.extend({ oHeight = e.offsetHeight; oWidth = e.offsetWidth; } else { - e = $(e.cloneNode(true)).css({ + e = jQuery(e.cloneNode(true)).css({ visibility: "hidden", position: "absolute", display: "block" - }).prependTo("body")[0]; + }).appendTo(e.parentNode)[0]; oHeight = e.clientHeight; oWidth = e.clientWidth; @@ -1110,7 +1212,7 @@ jQuery.extend({ * @test t( "Adjacent", "p + p", ["ap","en","sap"] ); * @test t( "Comma, Child, and Adjacent", "a + a, code > a", ["groups","anchor1","anchor2"] ); * @test t( "First Child", "p:first-child", ["firstp","sndp"] ); - * @test t( "Attribute Exists", "a[@title]", ["google"] ); + * @test t( "Attribute Exists", "a[@title]", ["google"] ); * @test t( "Attribute Exists", "*[@title]", ["google"] ); * @test t( "Attribute Exists", "[@title]", ["google"] ); * @test t( "Attribute Equals", "a[@rel='bookmark']", ["simon1"] ); @@ -1199,6 +1301,8 @@ jQuery.extend({ var foundToken = false; for ( var i = 0; i < jQuery.token.length; i += 2 ) { + if ( foundToken ) continue; + var re = new RegExp("^(" + jQuery.token[i] + ")"); var m = re.exec(t); @@ -1235,8 +1339,9 @@ jQuery.extend({ ); } } - } + } + if ( t ) { var val = jQuery.filter(t,r); ret = r = val.r; @@ -1650,7 +1755,7 @@ new function() { safari: /webkit/.test(b), opera: /opera/.test(b), msie: /msie/.test(b) && !/opera/.test(b), - mozilla: /mozilla/.test(b) && !/compatible/.test(b) + mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b) }; // Check to see if the W3C box model is being used @@ -2457,7 +2562,7 @@ jQuery.macros = { * @cat Effects */ toggle: function(){ - $(this)[ $(this).is(":hidden") ? "show" : "hide" ].apply( $(this), arguments ); + jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ].apply( jQuery(this), arguments ); }, /** @@ -2601,7 +2706,7 @@ jQuery.macros = { */ bind: function( type, fn ) { if ( fn.constructor == String ) - fn = new Function("e", ( !fn.indexOf(".") ? "$(this)" : "return " ) + fn); + fn = new Function("e", ( !fn.indexOf(".") ? "jQuery(this)" : "return " ) + fn); jQuery.event.add( this, type, fn ); },