continue;
// Recurse if we're merging object values
- if ( deep && copy && typeof copy == "object" && src && !copy.nodeType )
- target[ name ] = jQuery.extend( deep, src, copy );
+ if ( deep && copy && typeof copy == "object" && !copy.nodeType )
+ target[ name ] = jQuery.extend( deep,
+ // Never move original objects, clone them
+ src || ( copy.length != null ? [ ] : { } )
+ , copy );
// Don't bring in undefined values
else if ( copy !== undefined )
};
var expando = "jQuery" + now(), uuid = 0, windowData = {},
-
-// exclude the following css properties to add px
+ // exclude the following css properties to add px
exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
-// cache getComputedStyle
- getComputedStyle = document.defaultView && document.defaultView.getComputedStyle;
+ // cache defaultView
+ defaultView = document.defaultView || {};
jQuery.extend({
noConflict: function( deep ) {
// See test/unit/core.js for details concerning this function.
isFunction: function( fn ) {
return !!fn && typeof fn != "string" && !fn.nodeName &&
- fn.constructor != Array && /function/i.test( fn + "" );
+ fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
},
// check if an element is in a (or is an) XML document
if ( !jQuery.browser.safari )
return false;
- // getComputedStyle is cached
- var ret = getComputedStyle( elem, null );
+ // defaultView is cached
+ var ret = defaultView.getComputedStyle( elem, null );
return !ret || ret.getPropertyValue("color") == "";
}
if ( !force && style && style[ name ] )
ret = style[ name ];
- else if ( getComputedStyle ) {
+ else if ( defaultView.getComputedStyle ) {
// Only "float" is needed here
if ( name.match( /float/i ) )
name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
- var computedStyle = getComputedStyle( elem, null );
+ var computedStyle = defaultView.getComputedStyle( elem, null );
if ( computedStyle && !color( elem ) )
ret = computedStyle.getPropertyValue( name );
this.css( type, size.constructor == String ? size : size + "px" );
};
});
+
+// Helper function used by the dimensions and offset modules
+function num(elem, prop) {
+ return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
+}
\ No newline at end of file