aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Waldron <waldron.rick@gmail.com>2013-03-01 19:02:57 -0500
committerRick Waldron <waldron.rick@gmail.com>2013-03-01 19:02:57 -0500
commit3212a293695221df402317633adf63698d95efd1 (patch)
tree77b33ce1844d5d0319d87480c9953bb909094e41
parent9f981c84a5b9de7d9d3d465763476ff2682c5f24 (diff)
downloadjquery-3212a293695221df402317633adf63698d95efd1.tar.gz
jquery-3212a293695221df402317633adf63698d95efd1.zip
Fixes #13548. .data should not miss attr() set data-* with hyphenated property names
-rw-r--r--src/data.js8
-rw-r--r--test/unit/data.js13
2 files changed, 20 insertions, 1 deletions
diff --git a/src/data.js b/src/data.js
index 786477f64..fb97d2fda 100644
--- a/src/data.js
+++ b/src/data.js
@@ -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 );
diff --git a/test/unit/data.js b/test/unit/data.js
index 2eb48e742..cd8183fe1 100644
--- a/test/unit/data.js
+++ b/test/unit/data.js
@@ -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"),