Skip to content

Commit d08c2b9

Browse files
committed
Followup fbea3d1: Don't overwrite jQuery.attrFn
1 parent fbea3d1 commit d08c2b9

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

src/attributes.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
var attrFn = {},
2+
var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
33
oldAttr = jQuery.attr,
44
valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
55
function() { return null; },
@@ -11,7 +11,7 @@ var attrFn = {},
1111
ruseDefault = /^(?:checked|selected)$/i;
1212

1313
// jQuery.attrFn
14-
migrateWarnProp( jQuery, "attrFn", attrFn, "jQuery.attrFn is deprecated" );
14+
migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
1515

1616
jQuery.attr = function( elem, name, value, pass ) {
1717
var lowerName = name.toLowerCase(),
@@ -23,7 +23,8 @@ jQuery.attr = function( elem, name, value, pass ) {
2323
if ( oldAttr.length < 4 ) {
2424
migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
2525
}
26-
if ( elem && !rnoAttrNodeType.test( nType ) && jQuery.isFunction( jQuery.fn[ name ] ) ) {
26+
if ( elem && !rnoAttrNodeType.test( nType ) &&
27+
(attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
2728
return jQuery( elem )[ name ]( value );
2829
}
2930
}

test/core.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ test( "jQuery(html, props)", function() {
66

77
var $el = jQuery( "<input/>", { name: "name", val: "value", size: 42 } );
88

9-
equal( $el.attr("name"), "name", "Set attribute" );
10-
equal( $el.attr("size"), undefined, "Don't set size attribute" );
9+
equal( $el.attr("name"), "name", "Name attribute" );
10+
equal( $el.attr("size"), jQuery.isEmptyObject(jQuery.attrFn) ? undefined : "42", "Size attribute" );
1111
equal( $el.val(), "value", "Call setter method" );
1212
});
1313

0 commit comments

Comments
 (0)