git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
jquery core: saving some bytes and fixing indentation inside jQuery.prop.
[jquery.git]
/
src
/
core.js
diff --git
a/src/core.js
b/src/core.js
index
a0533b1
..
fdf5072
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-410,9
+410,7
@@
jQuery.fn = jQuery.prototype = {
jQuery.inArray(this.name, value) >= 0);
else if ( jQuery.nodeName( this, "select" ) ) {
jQuery.inArray(this.name, value) >= 0);
else if ( jQuery.nodeName( this, "select" ) ) {
- var values = value.constructor == Array ?
- value :
- [ value ];
+ var values = jQuery.makeArray(value);
jQuery( "option", this ).each(function(){
this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
jQuery( "option", this ).each(function(){
this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
@@
-429,7
+427,7
@@
jQuery.fn = jQuery.prototype = {
html: function( value ) {
return value == undefined ?
html: function( value ) {
return value == undefined ?
- (this.length ?
+ (this[0] ?
this[0].innerHTML :
null) :
this.empty().append( value );
this[0].innerHTML :
null) :
this.empty().append( value );
@@
-506,9
+504,9
@@
jQuery.fn = jQuery.prototype = {
this;
// execute all scripts after the elements have been injected
this;
// execute all scripts after the elements have been injected
- if ( jQuery.nodeName( elem, "script" ) ) {
+ if ( jQuery.nodeName( elem, "script" ) )
scripts = scripts.add( elem );
scripts = scripts.add( elem );
- } else {
+ else {
// Remove any inner scripts for later evaluation
if ( elem.nodeType == 1 )
scripts = scripts.add( jQuery( "script", elem ).remove() );
// Remove any inner scripts for later evaluation
if ( elem.nodeType == 1 )
scripts = scripts.add( jQuery( "script", elem ).remove() );
@@
-579,8
+577,11
@@
jQuery.extend = jQuery.fn.extend = function() {
continue;
// Recurse if we're merging object values
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 )
// Don't bring in undefined values
else if ( copy !== undefined )
@@
-593,11
+594,10
@@
jQuery.extend = jQuery.fn.extend = function() {
};
var expando = "jQuery" + now(), uuid = 0, windowData = {},
};
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,
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 ) {
jQuery.extend({
noConflict: function( deep ) {
@@
-612,7
+612,7
@@
jQuery.extend({
// See test/unit/core.js for details concerning this function.
isFunction: function( fn ) {
return !!fn && typeof fn != "string" && !fn.nodeName &&
// 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
},
// check if an element is in a (or is an) XML document
@@
-637,7
+637,9
@@
jQuery.extend({
else
script.appendChild( document.createTextNode( data ) );
else
script.appendChild( document.createTextNode( data ) );
- head.appendChild( script );
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709).
+ head.insertBefore( script, head.firstChild );
head.removeChild( script );
}
},
head.removeChild( script );
}
},
@@
-743,14
+745,14
@@
jQuery.extend({
},
prop: function( elem, value, type, i, name ) {
},
prop: function( elem, value, type, i, name ) {
- // Handle executable functions
- if ( jQuery.isFunction( value ) )
- value = value.call( elem, i );
-
- // Handle passing in a number to a CSS property
- return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
- value + "px" :
- value;
+ // Handle executable functions
+ if ( jQuery.isFunction( value ) )
+ value = value.call( elem, i );
+
+ // Handle passing in a number to a CSS property
+ return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
+ value + "px" :
+ value;
},
className: {
},
className: {
@@
-772,7
+774,7
@@
jQuery.extend({
"";
},
"";
},
- // internal only, use is(".class")
+ // internal only, use hasClass("class")
has: function( elem, className ) {
return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
}
has: function( elem, className ) {
return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
}
@@
-827,8
+829,8
@@
jQuery.extend({
if ( !jQuery.browser.safari )
return false;
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") == "";
}
return !ret || ret.getPropertyValue("color") == "";
}
@@
-854,7
+856,7
@@
jQuery.extend({
if ( !force && style && style[ name ] )
ret = style[ name ];
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 ) )
// Only "float" is needed here
if ( name.match( /float/i ) )
@@
-862,7
+864,7
@@
jQuery.extend({
name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
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 );
if ( computedStyle && !color( elem ) )
ret = computedStyle.getPropertyValue( name );
@@
-1146,17
+1148,17
@@
jQuery.extend({
merge: function( first, second ) {
// We have to loop this way because IE & Opera overwrite the length
// expando of getElementsByTagName
merge: function( first, second ) {
// We have to loop this way because IE & Opera overwrite the length
// expando of getElementsByTagName
- var i = 0;
+ var i = 0, elem, pos = first.length;
// Also, we need to make sure that the correct elements are being returned
// (IE returns comment nodes in a '*' query)
if ( jQuery.browser.msie ) {
// Also, we need to make sure that the correct elements are being returned
// (IE returns comment nodes in a '*' query)
if ( jQuery.browser.msie ) {
- for ( ; second[ i ]; i++ )
- if ( second[ i ].nodeType != 8 )
- first.push( second[ i ] );
+ while ( elem = second[ i++ ] )
+ if ( elem.nodeType != 8 )
+ first[ pos++ ] = elem;
} else
} else
- for ( ; second[ i ]; i++ )
- first.push( second[ i ] );
+ while ( elem = second[ i++ ] )
+ first[ pos++ ] = elem;
return first;
},
return first;
},
@@
-1356,3
+1358,8
@@
jQuery.each([ "Height", "Width" ], function(i, name){
this.css( type, size.constructor == String ? size : size + "px" );
};
});
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