]> source.dussan.org Git - jquery.git/commitdiff
Minor adjustments and cleanup, including normalizing the value to a string when setti...
authortimmywil <tim.willison@thisismedium.com>
Sat, 2 Apr 2011 18:23:33 +0000 (14:23 -0400)
committertimmywil <tim.willison@thisismedium.com>
Sun, 3 Apr 2011 23:13:41 +0000 (19:13 -0400)
- Normalize set value to string to synchronize return type cross-browser

- Add style attrHook to propHooks to support style getting in all browsers for both attr and prop

- Extend the selected propHook instead of overriding a possible set function

- Remove selected propHook TODO since there is no selected content attribute and it should return null

src/attributes.js

index 5afcffce3d7f230990ed248eed3ed8c153814895..7c03cddbea77c19ac6dc91d6fec78be8b9307a18 100644 (file)
@@ -313,7 +313,7 @@ jQuery.extend({
                                return ret;
 
                        } else {
-                               elem.setAttribute( name, value );
+                               elem.setAttribute( name, "" + value );
                                return value;
                        }
 
@@ -440,10 +440,8 @@ if ( !jQuery.support.getSetAttribute ) {
                        var ret = elem.getAttributeNode( name );
                        if ( ret ) {
                                ret.nodeValue = value;
-                       } else {
-                               elem.setAttribute( name, value );
+                               return value;
                        }
-                       return value;
                }
        };
 }
@@ -458,9 +456,6 @@ jQuery.each([ "selected", "checked", "readonly", "disabled" ], function( i, name
                                jQuery.removeAttr( elem, name );
                                return false;
                        }
-
-                       elem.setAttribute( name, value );
-                       return value;
                }
        });
 });
@@ -477,7 +472,7 @@ if ( !jQuery.support.hrefNormalized ) {
 }
 
 if ( !jQuery.support.style ) {
-       jQuery.attrHooks.style = {
+       jQuery.propHooks.style = jQuery.attrHooks.style = {
                get: function( elem ) {
                        return elem.style.cssText;
                },
@@ -490,24 +485,20 @@ if ( !jQuery.support.style ) {
 // Safari mis-reports the default selected property of an option
 // Accessing the parent's selectedIndex property fixes it
 if ( !jQuery.support.optSelected ) {
-
-       jQuery.propHooks.selected = {
+       jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
                get: function( elem ) {
                        var parent = elem.parentNode;
-                       
+
                        if ( parent ) {
                                parent.selectedIndex;
-                               
-                               // TODO: We may need an attrHook for selected that simply defers to prop?
-                               // The attr is undefined if the option is created with createElement and not on the DOM
-                               
+
                                // Make sure that it also works with optgroups, see #5701
                                if ( parent.parentNode ) {
                                        parent.parentNode.selectedIndex;
                                }
                        }
                }
-       };
+       });
 }
 
 })( jQuery );
\ No newline at end of file