Landing pull request 510. Add notes about #9699 fix.

More Details:
 - https://github.com/jquery/jquery/pull/510
 - http://bugs.jquery.com/ticket/9699
This commit is contained in:
Rick Waldron
2011-09-19 15:54:07 -04:00
committed by timmywil

View File

@@ -19,11 +19,11 @@ jQuery.fn.extend({
jQuery.removeAttr( this, name );
});
},
prop: function( name, value ) {
return jQuery.access( this, name, value, true, jQuery.prop );
},
removeProp: function( name ) {
name = jQuery.propFix[ name ] || name;
return this.each(function() {
@@ -156,7 +156,7 @@ jQuery.fn.extend({
val: function( value ) {
var hooks, ret,
elem = this[0];
if ( !arguments.length ) {
if ( elem ) {
hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
@@ -167,9 +167,9 @@ jQuery.fn.extend({
ret = elem.value;
return typeof ret === "string" ?
return typeof ret === "string" ?
// handle most common string cases
ret.replace(rreturn, "") :
ret.replace(rreturn, "") :
// handle cases where value is null/undef or number
ret == null ? "" : ret;
}
@@ -290,15 +290,15 @@ jQuery.extend({
height: true,
offset: true
},
attrFix: {
// Always normalize to ensure hook usage
tabindex: "tabIndex"
},
attr: function( elem, name, value, pass ) {
var nType = elem.nodeType;
// don't get/set attributes on text, comment and attribute nodes
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
return undefined;
@@ -367,6 +367,7 @@ jQuery.extend({
if ( elem.nodeType === 1 ) {
name = jQuery.attrFix[ name ] || name;
// See #9699 for explanation of this approach (setting first, then removal)
jQuery.attr( elem, name, "" );
elem.removeAttribute( name );
@@ -431,7 +432,7 @@ jQuery.extend({
frameborder: "frameBorder",
contenteditable: "contentEditable"
},
prop: function( elem, name, value ) {
var nType = elem.nodeType;
@@ -466,7 +467,7 @@ jQuery.extend({
}
}
},
propHooks: {
tabIndex: {
get: function( elem ) {