From: John Resig Date: Thu, 10 Dec 2009 05:28:33 +0000 (-0800) Subject: Restrict the attr quick setters to only methods that specifically ask for the functio... X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=f25eedf32a7555f71a246c6f491292ce876c4133;hp=1a4d1904ae8631f94b7400d99af24d3fe2f33ecd;p=jquery.git Restrict the attr quick setters to only methods that specifically ask for the functionality. Fixes #5612. --- diff --git a/src/attributes.js b/src/attributes.js index 8080af8..fb5b16b 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -200,12 +200,27 @@ jQuery.each({ }); jQuery.extend({ + attrFn: { + val: true, + addClass: true, + css: true, + html: true, + text: true, + append: true, + prepend: true, + data: true, + width: true, + height: true, + offset: true + }, + attr: function( elem, name, value ) { // don't set attributes on text and comment nodes if (!elem || elem.nodeType == 3 || elem.nodeType == 8) { return undefined; } - if ( name in jQuery.fn && name !== "attr" ) { + + if ( name in jQuery.attrFn ) { return jQuery(elem)[name](value); } diff --git a/src/event.js b/src/event.js index f766896..a32f033 100644 --- a/src/event.js +++ b/src/event.js @@ -885,6 +885,10 @@ jQuery.each( ("blur focus load resize scroll unload click dblclick " + jQuery.fn[ name ] = function( fn ) { return fn ? this.bind( name, fn ) : this.trigger( name ); }; + + if ( jQuery.fnAttr ) { + jQuery.fnAttr[ name ] = true; + } }); // Prevent memory leaks in IE