mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Attributes: Don't set the type attr hook at all outside of IE
This removes a needless function call in modern browsers. Closes gh-4587
This commit is contained in:
parent
437f389a24
commit
9e66fe9acf
@ -64,23 +64,7 @@ jQuery.extend( {
|
||||
return ret == null ? undefined : ret;
|
||||
},
|
||||
|
||||
attrHooks: {
|
||||
type: {
|
||||
set: function( elem, value ) {
|
||||
|
||||
// Support: IE <=11+
|
||||
// An input loses its value after becoming a radio
|
||||
if ( isIE && value === "radio" && nodeName( elem, "input" ) ) {
|
||||
var val = elem.value;
|
||||
elem.setAttribute( "type", value );
|
||||
if ( val ) {
|
||||
elem.value = val;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
attrHooks: {},
|
||||
|
||||
removeAttr: function( elem, value ) {
|
||||
var name,
|
||||
@ -98,6 +82,23 @@ jQuery.extend( {
|
||||
}
|
||||
} );
|
||||
|
||||
// Support: IE <=11+
|
||||
// An input loses its value after becoming a radio
|
||||
if ( isIE ) {
|
||||
jQuery.attrHooks.type = {
|
||||
set: function( elem, value ) {
|
||||
if ( value === "radio" && nodeName( elem, "input" ) ) {
|
||||
var val = elem.value;
|
||||
elem.setAttribute( "type", value );
|
||||
if ( val ) {
|
||||
elem.value = val;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
|
||||
jQuery.attrHooks[ name ] = {
|
||||
get: function( elem ) {
|
||||
|
Loading…
Reference in New Issue
Block a user