X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=011ea36275249689131d4cc9eccb02a894c6fccd;hb=382a7ecd6d8e9a39bf24cec81fd65971ef3f8ada;hp=9db0f9d5f5f280be42709d806d12d9e29a639599;hpb=9449591eef44360b5bfdb9a23cea1f4a1a6f3c33;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 9db0f9d..011ea36 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -33,7 +33,7 @@ var jQuery = function(a,c) { // HANDLE: $(function) // Shortcut for document ready // Safari reports typeof on DOM NodeLists as a function - if ( typeof a == "function" && !a.nodeType && a[0] == undefined ) + if ( jQuery.isFunction(a) && !a.nodeType && a[0] == undefined ) return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a ); // Handle HTML strings @@ -320,17 +320,17 @@ jQuery.fn = jQuery.prototype = { * Returns -1 if the object wasn't found. * * @example $("*").index( $('#foobar')[0] ) - * @before
+ * @beforeHello
Hello Again
+ * @beforeHello
Hello Again * @result [Hello
, Hello Again ] * * @name add @@ -946,7 +946,8 @@ jQuery.fn = jQuery.prototype = { */ /** - * Adds the on the fly created elements to the jQuery object. + * Adds more elements, created on the fly, to the set of + * matched elements. * * @example $("p").add("Again") * @beforeHello
@@ -961,15 +962,13 @@ jQuery.fn = jQuery.prototype = { /** * Adds one or more Elements to the set of matched elements. * - * This is used to add a set of Elements to a jQuery object. - * * @example $("p").add( document.getElementById("a") ) * @beforeHello
Hello Again
* @result [Hello
, Hello Again ] * - * @example $("p").add([document.getElementById("a"), document.getElementById("b")]) - * @beforeHello
Hello AgainAnd Again
- * @result [Hello
, Hello Again, And Again ] + * @example $("p").add( document.forms[0].elements ) + * @beforeHello
+ * @result [Hello
, , ] * * @name add * @type jQuery @@ -1212,6 +1211,10 @@ jQuery.extend({ $ = jQuery._$; }, + isFunction: function( fn ) { + return fn && typeof fn == "function"; + }, + /** * A generic iterator function, which can be used to seemlessly * iterate over both objects and arrays. This function is not the same @@ -1253,11 +1256,11 @@ jQuery.extend({ prop: function(elem, value, type){ // Handle executable functions - if ( value.constructor == Function ) - return value.call( elem ) + if ( jQuery.isFunction( value ) ) + return value.call( elem ); // Handle passing in a number to a CSS property - if ( value.constructor == Number && type == "css" ) + if ( value.constructor == Number && type == "curCSS" ) return value + "px"; return value; @@ -1277,7 +1280,7 @@ jQuery.extend({ elem.className = c ? jQuery.grep( elem.className.split(/\s+/), function(cur){ return !jQuery.className.has( c, cur ); - }).join(' ') : ""; + }).join(" ") : ""; }, // internal only, use is(".class") @@ -1344,8 +1347,8 @@ jQuery.extend({ curCSS: function(elem, prop, force) { var ret; - if (prop == 'opacity' && jQuery.browser.msie) - return jQuery.attr(elem.style, 'opacity'); + if (prop == "opacity" && jQuery.browser.msie) + return jQuery.attr(elem.style, "opacity"); if (prop == "float" || prop == "cssFloat") prop = jQuery.browser.msie ? "styleFloat" : "cssFloat"; @@ -1363,12 +1366,12 @@ jQuery.extend({ if ( cur ) ret = cur.getPropertyValue(prop); - else if ( prop == 'display' ) - ret = 'none'; + else if ( prop == "display" ) + ret = "none"; else - jQuery.swap(elem, { display: 'block' }, function() { - var c = document.defaultView.getComputedStyle(this, ''); - ret = c && c.getPropertyValue(prop) || ''; + jQuery.swap(elem, { display: "block" }, function() { + var c = document.defaultView.getComputedStyle(this, ""); + ret = c && c.getPropertyValue(prop) || ""; }); } else if (elem.currentStyle) { @@ -1386,6 +1389,11 @@ jQuery.extend({ for ( var i = 0, al = a.length; i < al; i++ ) { var arg = a[i]; + + if ( !arg ) continue; + + if ( arg.constructor == Number ) + arg = arg.toString(); // Convert html string into DOM nodes if ( typeof arg == "string" ) { @@ -1435,6 +1443,9 @@ jQuery.extend({ arg = div.childNodes; } + + if ( arg.length === 0 ) + continue; if ( arg[0] == undefined ) r.push( arg ); @@ -1484,7 +1495,7 @@ jQuery.extend({ if ( value != undefined ) elem[fix[name]] = value; return elem[fix[name]]; - } else if ( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) + } else if ( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == "FORM" && (name == "action" || name == "method") ) return elem.getAttributeNode(name).nodeValue; // IE elem.getAttribute passes even for style @@ -1699,7 +1710,7 @@ jQuery.extend({ */ /* - * Wheather the W3C compliant box model is being used. + * Whether the W3C compliant box model is being used. * * @property * @name $.boxModel @@ -2175,7 +2186,7 @@ jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){ * * @name width * @type jQuery - * @param Number|String val Set the CSS property to the specified value. + * @param String|Number val Set the CSS property to the specified value. * @cat CSS */ @@ -2205,7 +2216,7 @@ jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){ * * @name height * @type jQuery - * @param Number|String val Set the CSS property to the specified value. + * @param String|Number val Set the CSS property to the specified value. * @cat CSS */