Permalink
Browse files

Landing pull request 403. Check for both camelized and hyphenated dat…

…a property names; Fixes #9301.

More Details:
 - #403
 - http://bugs.jquery.com/ticket/9301
  • Loading branch information...
1 parent c3c001c commit 07420566452622f37b01e69bbbdcbeeb5317e065 @rwaldron rwaldron committed with timmywil Jun 7, 2011
Showing with 21 additions and 1 deletion.
  1. +4 −1 src/data.js
  2. +17 −0 test/unit/data.js
View
@@ -108,7 +108,10 @@ jQuery.extend({
return thisCache[ internalKey ] && thisCache[ internalKey ].events;
}
- return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache;
+ return getByName ?
+ // Check for both converted-to-camel and non-converted data property names
+ thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] :
+ thisCache;
},
removeData: function( elem, name, pvt /* Internal Use Only */ ) {
View
@@ -508,3 +508,20 @@ test("jQuery.data should follow html5 specification regarding camel casing", fun
div.remove();
});
+
+test("jQuery.data should not miss data with preset hyphenated property names", function() {
+
+ expect(2);
+
+ var div = jQuery("<div/>", { id: "hyphened" }).appendTo("#qunit-fixture"),
+ test = {
+ "camelBar": "camelBar",
+ "hyphen-foo": "hyphen-foo"
+ };
+
+ div.data( test );
+
+ jQuery.each( test , function(i, k) {
+ equal( div.data(k), k, "data with property '"+k+"' was correctly found");
+ });
+});

0 comments on commit 0742056

Please sign in to comment.