Приветствую.
Чем вы думаете логично объясняется что .data начальные значения берет из dom-овского dataset, но сама не устанавливает
<div id="banner-message" data-param1="lalala">
<p>Hello World</p>
<button>Change color</button>
</div>
// find elements
var $banner = $("#banner-message");
var banner = $banner.get(0);
alert($banner.data('param1')); // lalala
alert(banner.dataset.param1); // lalala
$banner.data('param2', 'lalala222');
alert($banner.data('param2')); // lalala222
alert(banner.dataset.param2); // undefined