diff options
author | Rick Waldron <waldron.rick@gmail.com> | 2013-03-01 19:02:57 -0500 |
---|---|---|
committer | Rick Waldron <waldron.rick@gmail.com> | 2013-03-01 19:02:57 -0500 |
commit | 3212a293695221df402317633adf63698d95efd1 (patch) | |
tree | 77b33ce1844d5d0319d87480c9953bb909094e41 | |
parent | 9f981c84a5b9de7d9d3d465763476ff2682c5f24 (diff) | |
download | jquery-3212a293695221df402317633adf63698d95efd1.tar.gz jquery-3212a293695221df402317633adf63698d95efd1.zip |
Fixes #13548. .data should not miss attr() set data-* with hyphenated property names
-rw-r--r-- | src/data.js | 8 | ||||
-rw-r--r-- | test/unit/data.js | 13 |
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"), |