]> source.dussan.org Git - jquery.git/commitdiff
Fixes #13548. .data should not miss attr() set data-* with hyphenated property names
authorRick Waldron <waldron.rick@gmail.com>
Sat, 2 Mar 2013 00:02:57 +0000 (19:02 -0500)
committerRick Waldron <waldron.rick@gmail.com>
Sat, 2 Mar 2013 00:02:57 +0000 (19:02 -0500)
src/data.js
test/unit/data.js

index 786477f648d9dea1a5be98bec6e836407630f59d..fb97d2fda3d96f1097148deea4ef08ae3ac9d9e0 100644 (file)
@@ -264,6 +264,14 @@ jQuery.fn.extend({
                                if ( data !== undefined ) {
                                        return data;
                                }
+
+                               // Attempt to get data from the cache
+                               // with the key camelized
+                               data = data_user.get( elem, camelKey );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
                                // Attempt to "discover" the data in
                                // HTML5 custom data-* attrs
                                data = dataAttr( elem, key, undefined );
index 2eb48e7425c204290deafeab425025b8cc211914..cd8183fe1934a9d628f1963235ad15ab39deb026 100644 (file)
@@ -497,7 +497,7 @@ 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() {
+test(".data should not miss preset data-* w/ hyphenated property names", function() {
 
        expect(2);
 
@@ -514,6 +514,17 @@ test("jQuery.data should not miss data with preset hyphenated property names", f
        });
 });
 
+test(".data should not miss attr() set data-* with hyphenated property names", function() {
+       expect(1);
+
+       var div = jQuery("<div/>").appendTo("#qunit-fixture");
+
+       div.attr( "data-long-param", "test" );
+       div.data( "long-param", { a: 2 });
+
+       deepEqual( div.data("long-param"), { a: 2 }, "data with property long-param was found" );
+});
+
 test("jQuery.data supports interoperable hyphenated/camelCase get/set of properties with arbitrary non-null|NaN|undefined values", function() {
 
        var div = jQuery("<div/>", { id: "hyphened" }).appendTo("#qunit-fixture"),