// 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
"textContent" : "innerText";
return e == undefined ?
- jQuery.map(this, function(a){ return a[ type ]; }).join('') :
+ jQuery.map(this, function(a){ return a[ type ]; }).join("") :
this.each(function(){ this[ type ] = e; });
},
*/
filter: function(t) {
return this.pushStack(
- t.constructor == Function &&
+ jQuery.isFunction( t ) &&
jQuery.grep(this, function(el, index){
return t.apply(el, [index])
}) ||
jQuery.grep(this,function(a){
if ( t.constructor == Array || t.jquery )
- return !jQuery.inArray( t, a );
+ return jQuery.inArray( t, a ) < 0;
else
return a != t;
}) );
$ = 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
prop: function(elem, value, type){
// Handle executable functions
- if ( value.constructor == Function )
+ if ( jQuery.isFunction( value ) )
return value.call( elem );
// Handle passing in a number to a CSS property
elem.className = c ?
jQuery.grep( elem.className.split(/\s+/), function(cur){
return !jQuery.className.has( c, cur );
- }).join(' ') : "";
+ }).join(" ") : "";
},
// internal only, use is(".class")
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";
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) {
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" ) {
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
*/
/*
- * Wheather the W3C compliant box model is being used.
+ * Whether the W3C compliant box model is being used.
*
* @property
* @name $.boxModel