git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed #1264. If you read the bug there were many proposed changes. As it turned...
[jquery.git]
/
src
/
core.js
diff --git
a/src/core.js
b/src/core.js
index
b9d5247
..
0f27425
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-43,7
+43,7
@@
jQuery.fn = jQuery.prototype = {
return this;
// Handle HTML strings
return this;
// Handle HTML strings
- } else if ( typeof selector == "string" ) {
+ } else if ( typeof selector == "string" ) {
// Are we dealing with HTML string or an ID?
var match = quickExpr.exec( selector );
// Are we dealing with HTML string or an ID?
var match = quickExpr.exec( selector );
@@
-194,12
+194,15
@@
jQuery.fn = jQuery.prototype = {
},
css: function( key, value ) {
},
css: function( key, value ) {
+ // ignore negative width and height values
+ if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
+ value = undefined;
return this.attr( key, value, "curCSS" );
},
text: function( text ) {
if ( typeof text != "object" && text != null )
return this.attr( key, value, "curCSS" );
},
text: function( text ) {
if ( typeof text != "object" && text != null )
- return this.empty().append( document.createTextNode( text ) );
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
var ret = "";
var ret = "";
@@
-360,7
+363,7
@@
jQuery.fn = jQuery.prototype = {
if ( this.length ) {
var elem = this[0];
if ( this.length ) {
var elem = this[0];
-
+
// We need to handle select boxes special
if ( jQuery.nodeName( elem, "select" ) ) {
var index = elem.selectedIndex,
// We need to handle select boxes special
if ( jQuery.nodeName( elem, "select" ) ) {
var index = elem.selectedIndex,
@@
-393,7
+396,7
@@
jQuery.fn = jQuery.prototype = {
// Everything else, we just grab the value
} else
// Everything else, we just grab the value
} else
- return this[0].value.replace(/\r/g, "");
+ return (this[0].value || "").replace(/\r/g, "");
}
}
@@
-465,7
+468,7
@@
jQuery.fn = jQuery.prototype = {
var obj = this;
if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
var obj = this;
if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
- obj = this.getElementsByTagName("tbody")[0] || this.appendChild( document.createElement("tbody") );
+ obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
var scripts = jQuery( [] );
var scripts = jQuery( [] );
@@
-527,7
+530,7
@@
jQuery.extend = jQuery.fn.extend = function() {
}
// Handle case when target is a string or something (possible in deep copy)
}
// Handle case when target is a string or something (possible in deep copy)
- if ( typeof target != "object" )
+ if ( typeof target != "object" && typeof target != "function" )
target = {};
// extend jQuery itself if only one argument is passed
target = {};
// extend jQuery itself if only one argument is passed
@@
-546,7
+549,7
@@
jQuery.extend = jQuery.fn.extend = function() {
continue;
// Recurse if we're merging object values
continue;
// Recurse if we're merging object values
- if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
+ if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
target[ name ] = jQuery.extend( target[ name ], options[ name ] );
// Don't bring in undefined values
target[ name ] = jQuery.extend( target[ name ], options[ name ] );
// Don't bring in undefined values
@@
-588,7
+591,6
@@
jQuery.extend({
},
// Evalulates a script in a global context
},
// Evalulates a script in a global context
- // Evaluates Async. in Safari 2 :-(
globalEval: function( data ) {
data = jQuery.trim( data );
globalEval: function( data ) {
data = jQuery.trim( data );
@@
-755,7
+757,7
@@
jQuery.extend({
elem.style[ name ] = elem.style[ "old" + name ];
},
elem.style[ name ] = elem.style[ "old" + name ];
},
- css: function( elem, name ) {
+ css: function( elem, name, force ) {
if ( name == "height" || name == "width" ) {
var old = {}, height, width;
if ( name == "height" || name == "width" ) {
var old = {}, height, width;
@@
-805,7
+807,7
@@
jQuery.extend({
width;
}
width;
}
- return jQuery.curCSS( elem, name );
+ return jQuery.curCSS( elem, name, force );
},
curCSS: function( elem, name, force ) {
},
curCSS: function( elem, name, force ) {
@@
-915,6
+917,8
@@
jQuery.extend({
clean: function( elems, context ) {
var ret = [];
context = context || document;
clean: function( elems, context ) {
var ret = [];
context = context || document;
+ if (!context.createElement)
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
jQuery.each(elems, function(i, elem){
if ( !elem )
jQuery.each(elems, function(i, elem){
if ( !elem )
@@
-1039,7
+1043,8
@@
jQuery.extend({
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
throw "type property can't be changed";
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
throw "type property can't be changed";
- elem.setAttribute( name, value );
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute( name, "" + value );
}
if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) )
}
if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) )
@@
-1061,7
+1066,7
@@
jQuery.extend({
(parseFloat( value ).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
}
(parseFloat( value ).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
}
- return elem.filter ?
+ return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() :
"";
}
(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() :
"";
}
@@
-1321,7
+1326,7
@@
jQuery.each([ "Height", "Width" ], function(i, name){
this[0] == document ?
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater (Mozilla reports scrollWidth the same as offsetWidth)
Math.max( document.body[ "scroll" + name ], document.body[ "offset" + name ] ) :
this[0] == document ?
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater (Mozilla reports scrollWidth the same as offsetWidth)
Math.max( document.body[ "scroll" + name ], document.body[ "offset" + name ] ) :
-
+
// Get or set width or height on the element
size == undefined ?
// Get width or height on the element
// Get or set width or height on the element
size == undefined ?
// Get width or height on the element