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: adding rowSpan to jQuery.props.
[jquery.git]
/
src
/
core.js
diff --git
a/src/core.js
b/src/core.js
index
98a0dc4
..
5e1f0b0
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-401,6
+401,9
@@
jQuery.fn = jQuery.prototype = {
return undefined;
}
return undefined;
}
+ if( value.constructor == Number )
+ value += '';
+
return this.each(function(){
if ( this.nodeType != 1 )
return;
return this.each(function(){
if ( this.nodeType != 1 )
return;
@@
-410,9
+413,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
+430,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
+507,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() );
@@
-596,11
+597,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 ) {
@@
-615,7
+615,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
@@
-640,7
+640,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 );
}
},
@@
-746,14
+748,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: {
@@
-775,7
+777,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;
}
@@
-830,8
+832,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") == "";
}
@@
-857,7
+859,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 ) )
@@
-865,7
+867,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 );
@@
-1058,7
+1060,7
@@
jQuery.extend({
elem.parentNode.selectedIndex;
// If applicable, access the attribute via the DOM 0 way
elem.parentNode.selectedIndex;
// If applicable, access the attribute via the DOM 0 way
- if ( notxml && !special && name in elem ) {
+ if ( name in elem && notxml && !special ) {
if ( set ){
// We can't allow the type property to be changed (since it causes problems in IE)
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
if ( set ){
// We can't allow the type property to be changed (since it causes problems in IE)
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
@@
-1081,11
+1083,13
@@
jQuery.extend({
// convert the value to a string (all browsers do this but IE) see #1070
elem.setAttribute( name, "" + value );
// convert the value to a string (all browsers do this but IE) see #1070
elem.setAttribute( name, "" + value );
- if ( msie && special && notxml )
- return elem.getAttribute( name, 2 );
-
- return elem.getAttribute( name );
+ var attr = msie && notxml && special
+ // Some attributes require a special call on IE
+ ? elem.getAttribute( name, 2 )
+ : elem.getAttribute( name );
+ // Non-existent attributes return null, we normalize to undefined
+ return attr === null ? undefined : attr;
}
// elem is actually elem.style ... set the style
}
// elem is actually elem.style ... set the style
@@
-1240,7
+1244,8
@@
jQuery.extend({
styleFloat: styleFloat,
readonly: "readOnly",
maxlength: "maxLength",
styleFloat: styleFloat,
readonly: "readOnly",
maxlength: "maxLength",
- cellspacing: "cellSpacing"
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan"
}
});
}
});
@@
-1359,3
+1364,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