From: Rick Waldron Date: Sat, 2 Mar 2013 00:02:57 +0000 (-0500) Subject: Fixes #13548. .data should not miss attr() set data-* with hyphenated property names X-Git-Tag: 2.0.0-beta3~64 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3212a293695221df402317633adf63698d95efd1;p=jquery.git Fixes #13548. .data should not miss attr() set data-* with hyphenated property names --- 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("
").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("
", { id: "hyphened" }).appendTo("#qunit-fixture"),