aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/attributes.js31
-rw-r--r--test/data/dashboard.xml2
-rw-r--r--test/unit/attributes.js7
3 files changed, 22 insertions, 18 deletions
diff --git a/src/attributes.js b/src/attributes.js
index 5b68773c9..ce7b35021 100644
--- a/src/attributes.js
+++ b/src/attributes.js
@@ -320,21 +320,23 @@ jQuery.extend({
notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
// Normalize the name if needed
- name = notxml && jQuery.attrFix[ name ] || name;
+ if ( notxml ) {
+ name = jQuery.attrFix[ name ] || name;
- hooks = jQuery.attrHooks[ name ];
+ hooks = jQuery.attrHooks[ name ];
- if ( !hooks ) {
- // Use boolHook for boolean attributes
- if ( rboolean.test( name ) ) {
+ if ( !hooks ) {
+ // Use boolHook for boolean attributes
+ if ( rboolean.test( name ) ) {
- hooks = boolHook;
+ hooks = boolHook;
- // Use formHook for forms and if the name contains certain characters
- } else if ( formHook && name !== "className" &&
- (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
+ // Use formHook for forms and if the name contains certain characters
+ } else if ( formHook && name !== "className" &&
+ (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
- hooks = formHook;
+ hooks = formHook;
+ }
}
}
@@ -465,10 +467,11 @@ jQuery.extend({
var ret, hooks,
notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
- // Try to normalize/fix the name
- name = notxml && jQuery.propFix[ name ] || name;
-
- hooks = jQuery.propHooks[ name ];
+ if ( notxml ) {
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
if ( value !== undefined ) {
if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
diff --git a/test/data/dashboard.xml b/test/data/dashboard.xml
index 10f6b3347..5a6f56142 100644
--- a/test/data/dashboard.xml
+++ b/test/data/dashboard.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<dashboard>
<locations class="foo">
- <location for="bar">
+ <location for="bar" checked="different">
<infowindowtab>
<tab title="Location"><![CDATA[blabla]]></tab>
<tab title="Users"><![CDATA[blublu]]></tab>
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index 37260f2fa..831f729c3 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -132,11 +132,12 @@ test("attr(String)", function() {
if ( !isLocal ) {
test("attr(String) in XML Files", function() {
- expect(2);
+ expect(3);
stop();
jQuery.get("data/dashboard.xml", function( xml ) {
- equals( jQuery( "locations", xml ).attr("class"), "foo", "Check class attribute in XML document" );
- equals( jQuery( "location", xml ).attr("for"), "bar", "Check for attribute in XML document" );
+ equal( jQuery( "locations", xml ).attr("class"), "foo", "Check class attribute in XML document" );
+ equal( jQuery( "location", xml ).attr("for"), "bar", "Check for attribute in XML document" );
+ equal( jQuery( "location", xml ).attr("checked"), "different", "Check that hooks are not attached in XML document" );
start();
});
});