Skip to content
Permalink
Browse files

Landing pull request 461. Adds a due diligence check for pre-defined …

…data-* attrs during removal. Fixes #10026.

More Details:
 - #461
 - http://bugs.jquery.com/ticket/10026
  • Loading branch information...
rwaldron authored and timmywil committed Aug 22, 2011
1 parent 1a738cb commit 6805fc2cd20e36af5c1b0c51f6f39f21cea4609a
Showing with 17 additions and 1 deletion.
  1. +5 −0 src/data.js
  2. +12 −1 test/unit/data.js
@@ -167,6 +167,11 @@ jQuery.extend({

delete thisCache[ name ];

// Check the actual element for predefined data-* attrs, #10027
if ( jQuery.attr( elem, "data-" + name ) ) {
jQuery.removeAttr( elem, "data-" + name );
}

// If there is no data left in the cache, we want to continue
// and let the cache object itself get destroyed
if ( !isEmptyDataObject(thisCache) ) {
@@ -568,7 +568,7 @@ test("jQuery.data supports interoperable removal of hyphenated/camelCase propert
"some-json": '{ "foo": "bar" }'
};

expect( 27 );
expect( 29 );

jQuery.each( datas, function( key, val ) {
div.data( key, val );
@@ -581,4 +581,15 @@ test("jQuery.data supports interoperable removal of hyphenated/camelCase propert
equal( div.data( key ), undefined, "get: " + key );

});

div.remove();

// Covers #10027
div = jQuery("<div data-msg='hello'></div>");

equal( div.data("msg"), "hello", "<div data-msg='hello'></div> has expected data" );

div.removeData("msg");

equal( div.data("msg"), undefined, "data-msg removed correctly" );
});

0 comments on commit 6805fc2

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.