Commit 147726af authored by Rick Waldron's avatar Rick Waldron

Fixes #14047 jQuery.data should not miss data-* w/ hyphenated property names

http://bugs.jquery.com/ticket/14047Signed-off-by: 's avatarRick Waldron <waldron.rick@gmail.com>
parent 3a434434
...@@ -113,6 +113,7 @@ Data.prototype = { ...@@ -113,6 +113,7 @@ Data.prototype = {
cache : cache[ key ]; cache : cache[ key ];
}, },
access: function( owner, key, value ) { access: function( owner, key, value ) {
var stored;
// In cases where either: // In cases where either:
// //
// 1. No key was specified // 1. No key was specified
...@@ -126,7 +127,11 @@ Data.prototype = { ...@@ -126,7 +127,11 @@ Data.prototype = {
// //
if ( key === undefined || if ( key === undefined ||
((key && typeof key === "string") && value === undefined) ) { ((key && typeof key === "string") && value === undefined) ) {
return this.get( owner, key );
stored = this.get( owner, key );
return stored !== undefined ?
stored : this.get( owner, jQuery.camelCase(key) );
} }
// [*]When the key is not a string, or both a key and value // [*]When the key is not a string, or both a key and value
......
...@@ -529,6 +529,17 @@ test(".data should not miss preset data-* w/ hyphenated property names", functio ...@@ -529,6 +529,17 @@ test(".data should not miss preset data-* w/ hyphenated property names", functio
}); });
}); });
test("jQuery.data should not miss data-* w/ hyphenated property names #14047", function() {
expect(1);
var div = jQuery("<div/>");
div.data( "foo-bar", "baz" );
equal( jQuery.data(div[0], "foo-bar"), "baz", "data with property 'foo-bar' was correctly found");
});
test(".data should not miss attr() set data-* with hyphenated property names", function() { test(".data should not miss attr() set data-* with hyphenated property names", function() {
expect(2); expect(2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment