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.