JSFiddle - React, Tailwind, and code Playground
HTML
<div id="test" data-href="/one/"></div>
<div id="results"></div>
JavaScript
//
// Test output
//
function output(code, expected) {
var r = JSON.stringify(eval(code));
$('#results').append($('<p/>', {
text: '>> ' + code
})).append($('<p/>', {
text: r,
style: 'color:' + (expected === r ? 'green' : 'red')
}));
}
//
// Workaround
//
$.fn.invalidateParsedAttrs = function() {
return this.each(function() {
jQuery._data(this, "parsedAttrs", false);
});
};
//
// Tests
//
// PASS
output("$('#test').data();", '{"href":"/one/"}');
// PASS
output("$('#test').attr('data-href', '/two/').data();", '{"href":"/one/"}');
// FAIL
output("$('#test').removeData().data();", '{"href":"/two/"}');
// PASS
output("$('#test').invalidateParsedAttrs().data();", '{"href":"/two/"}');