git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make sure that jQuery works even when the individual modules are loaded separately...
[jquery.git]
/
src
/
attributes.js
diff --git
a/src/attributes.js
b/src/attributes.js
index
3ae0542
..
73b4cdf
100644
(file)
--- a/
src/attributes.js
+++ b/
src/attributes.js
@@
-1,3
+1,5
@@
+(function( jQuery ) {
+
var rclass = /[\n\t]/g,
rspace = /\s+/,
rreturn = /\r/g,
var rclass = /[\n\t]/g,
rspace = /\s+/,
rreturn = /\r/g,
@@
-9,17
+11,10
@@
var rclass = /[\n\t]/g,
jQuery.fn.extend({
attr: function( name, value ) {
jQuery.fn.extend({
attr: function( name, value ) {
- return access( this, name, value, true, jQuery.attr );
+ return jQuery.access( this, name, value, true, jQuery.attr );
},
},
- removeAttr: function( name ) {
- if ( jQuery.isFunction( name ) ) {
- return this.each(function(i) {
- var self = jQuery(this);
- self.removeAttr( name.call(this, i, self.attr(name)) );
- });
- }
-
+ removeAttr: function( name, fn ) {
return this.each(function(){
jQuery.attr( this, name, "" );
if ( this.nodeType === 1 ) {
return this.each(function(){
jQuery.attr( this, name, "" );
if ( this.nodeType === 1 ) {
@@
-47,12
+42,13
@@
jQuery.fn.extend({
elem.className = value;
} else {
elem.className = value;
} else {
- var className = " " + elem.className + " ";
+ var className = " " + elem.className + " ", setClass = elem.className;
for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
- elem.className += " " + classNames[c];
+ setClass += " " + classNames[c];
}
}
}
}
+ elem.className = jQuery.trim( setClass );
}
}
}
}
}
}
@@
-81,7
+77,7
@@
jQuery.fn.extend({
for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
className = className.replace(" " + classNames[c] + " ", " ");
}
for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
className = className.replace(" " + classNames[c] + " ", " ");
}
- elem.className = className.substring(1, className.length - 1);
+ elem.className = jQuery.trim( className );
} else {
elem.className = "";
} else {
elem.className = "";
@@
-145,7
+141,10
@@
jQuery.fn.extend({
if ( elem ) {
if ( jQuery.nodeName( elem, "option" ) ) {
if ( elem ) {
if ( jQuery.nodeName( elem, "option" ) ) {
- return (elem.attributes.value || {}).specified ? elem.value : elem.text;
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
}
// We need to handle select boxes special
}
// We need to handle select boxes special
@@
-284,11
+283,12
@@
jQuery.extend({
}
// If applicable, access the attribute via the DOM 0 way
}
// If applicable, access the attribute via the DOM 0 way
- if ( name in elem && notxml && !special ) {
+ // 'in' checks fail in Blackberry 4.7 #6931
+ if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) {
if ( set ) {
// We can't allow the type property to be changed (since it causes problems in IE)
if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
if ( set ) {
// We can't allow the type property to be changed (since it causes problems in IE)
if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
- throw "type property can't be changed";
+ jQuery.error( "type property can't be changed" );
}
elem[ name ] = value;
}
elem[ name ] = value;
@@
-327,6
+327,12
@@
jQuery.extend({
elem.setAttribute( name, "" + value );
}
elem.setAttribute( name, "" + value );
}
+ // Ensure that missing attributes return undefined
+ // Blackberry 4.7 returns "" from getAttribute #6938
+ if ( !elem.attributes[ name ] && !elem.hasAttribute( name ) ) {
+ return undefined;
+ }
+
var attr = !jQuery.support.hrefNormalized && notxml && special ?
// Some attributes require a special call on IE
elem.getAttribute( name, 2 ) :
var attr = !jQuery.support.hrefNormalized && notxml && special ?
// Some attributes require a special call on IE
elem.getAttribute( name, 2 ) :
@@
-337,7
+343,9
@@
jQuery.extend({
}
// elem is actually elem.style ... set the style
}
// elem is actually elem.style ... set the style
- // Using attr for specific style information is now deprecated. Use style insead.
+ // Using attr for specific style information is now deprecated. Use style instead.
return jQuery.style( elem, name, value );
}
});
return jQuery.style( elem, name, value );
}
});
+
+})( jQuery );