X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=c3975e3023fe6ead726c856e864dd39617b59ecc;hb=805d21c2360a10fa5e7ac85cc593b4403afb6c9f;hp=a204992adf31e65c5754ec93bb95af1eef60d08f;hpb=0382a490f5e5ee781098981db050a23d4f2e5a36;p=jquery.git
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js
index a204992..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 )
@@ -69,8 +69,110 @@ function jQuery(a,c) {
}
// Map over the $ in case of overwrite
-if ( $ )
+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
three
+ * @result [ two
]
+ *
+ * @example $("").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
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;
@@ -378,8 +480,9 @@ jQuery.fn = jQuery.prototype = {
for ( var j = 0; j < e.length; j++ ) {
var r = e[j].childNodes;
for ( var i = 0; i < r.length; i++ )
- t += r[i].nodeType != 1 ?
- r[i].nodeValue : jQuery.fn.text([ r[i] ]);
+ if ( r[i].nodeType != 8 )
+ t += r[i].nodeType != 1 ?
+ r[i].nodeValue : jQuery.fn.text([ r[i] ]);
}
return t;
},
@@ -765,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 );
}
@@ -822,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 );
});
};
});
@@ -923,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;
@@ -1025,6 +1128,7 @@ jQuery.extend({
odd: "i%2",
// Child Checks
+ "nth-child": "jQuery.sibling(a,m[3]).cur",
"first-child": "jQuery.sibling(a,0).cur",
"last-child": "jQuery.sibling(a,0).last",
"only-child": "jQuery.sibling(a).length==1",
@@ -1108,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"] );
@@ -1197,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);
@@ -1233,8 +1339,9 @@ jQuery.extend({
);
}
}
- }
+ }
+
if ( t ) {
var val = jQuery.filter(t,r);
ret = r = val.r;
@@ -1265,7 +1372,9 @@ jQuery.extend({
"class": "className",
"float": "cssFloat",
innerHTML: "innerHTML",
- className: "className"
+ className: "className",
+ value: "value",
+ disabled: "disabled"
};
if ( fix[name] ) {
@@ -1646,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
@@ -2383,7 +2492,7 @@ jQuery.macros = {
* @param String expr An expression to filter the child Elements with
* @cat DOM/Traversing
*/
- children: "a.childNodes"
+ children: "jQuery.sibling(a.firstChild)"
},
each: {
@@ -2453,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 );
},
/**
@@ -2549,7 +2658,7 @@ jQuery.macros = {
* @cat DOM/Manipulation
*/
remove: function(a){
- if ( !a || jQuery.filter( [this], a ).r )
+ if ( !a || jQuery.filter( a, [this] ).r )
this.parentNode.removeChild( this );
},
@@ -2597,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 );
},