Commit af1dc64b authored by Rick Waldron's avatar Rick Waldron Committed by timmywil

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

More Details:
 - https://github.com/jquery/jquery/pull/510
 - http://bugs.jquery.com/ticket/9699
parents e7a7cc89 bc65f930
...@@ -19,11 +19,11 @@ jQuery.fn.extend({ ...@@ -19,11 +19,11 @@ jQuery.fn.extend({
jQuery.removeAttr( this, name ); jQuery.removeAttr( this, name );
}); });
}, },
prop: function( name, value ) { prop: function( name, value ) {
return jQuery.access( this, name, value, true, jQuery.prop ); return jQuery.access( this, name, value, true, jQuery.prop );
}, },
removeProp: function( name ) { removeProp: function( name ) {
name = jQuery.propFix[ name ] || name; name = jQuery.propFix[ name ] || name;
return this.each(function() { return this.each(function() {
...@@ -156,7 +156,7 @@ jQuery.fn.extend({ ...@@ -156,7 +156,7 @@ jQuery.fn.extend({
val: function( value ) { val: function( value ) {
var hooks, ret, var hooks, ret,
elem = this[0]; elem = this[0];
if ( !arguments.length ) { if ( !arguments.length ) {
if ( elem ) { if ( elem ) {
hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
...@@ -167,9 +167,9 @@ jQuery.fn.extend({ ...@@ -167,9 +167,9 @@ jQuery.fn.extend({
ret = elem.value; ret = elem.value;
return typeof ret === "string" ? return typeof ret === "string" ?
// handle most common string cases // handle most common string cases
ret.replace(rreturn, "") : ret.replace(rreturn, "") :
// handle cases where value is null/undef or number // handle cases where value is null/undef or number
ret == null ? "" : ret; ret == null ? "" : ret;
} }
...@@ -290,15 +290,15 @@ jQuery.extend({ ...@@ -290,15 +290,15 @@ jQuery.extend({
height: true, height: true,
offset: true offset: true
}, },
attrFix: { attrFix: {
// Always normalize to ensure hook usage // Always normalize to ensure hook usage
tabindex: "tabIndex" tabindex: "tabIndex"
}, },
attr: function( elem, name, value, pass ) { attr: function( elem, name, value, pass ) {
var nType = elem.nodeType; var nType = elem.nodeType;
// don't get/set attributes on text, comment and attribute nodes // don't get/set attributes on text, comment and attribute nodes
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
return undefined; return undefined;
...@@ -367,6 +367,7 @@ jQuery.extend({ ...@@ -367,6 +367,7 @@ jQuery.extend({
if ( elem.nodeType === 1 ) { if ( elem.nodeType === 1 ) {
name = jQuery.attrFix[ name ] || name; name = jQuery.attrFix[ name ] || name;
// See #9699 for explanation of this approach (setting first, then removal)
jQuery.attr( elem, name, "" ); jQuery.attr( elem, name, "" );
elem.removeAttribute( name ); elem.removeAttribute( name );
...@@ -431,7 +432,7 @@ jQuery.extend({ ...@@ -431,7 +432,7 @@ jQuery.extend({
frameborder: "frameBorder", frameborder: "frameBorder",
contenteditable: "contentEditable" contenteditable: "contentEditable"
}, },
prop: function( elem, name, value ) { prop: function( elem, name, value ) {
var nType = elem.nodeType; var nType = elem.nodeType;
...@@ -466,7 +467,7 @@ jQuery.extend({ ...@@ -466,7 +467,7 @@ jQuery.extend({
} }
} }
}, },
propHooks: { propHooks: {
tabIndex: { tabIndex: {
get: function( elem ) { get: function( elem ) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment