jquery による .data() メソッドは、URL ロケーション バーで ENTER を押してページをリロードするだけではなく、更新を行ったときにのみ機能するようです。
まだ div はありますが、console.log に記録しました -- 、更新時または単純な入力時にキャッシュからページをロードするかどうか..
誰もこの行動を見たことがありますか?何が間違っている可能性がありますか?
$('div.special').each(function(index) {
console.log($(this));
//shows clearly that data-settings is set..
if ($(this).data('settings')) {
console.log('got settings');
}
});
<div class="special" data-settings='{"dataUrl": "xxx", "layout": "list" }'></div>
編集:次のことを行うことでこれを「解決」できます:
if ($(this).data('settings')) {
var settings = $(this).data('settings');
} else if ($(this).attr('data-settings')) {
eval('var settings = ' + $(this).attr('data-settings') + ';');
}
したがって、明らかに、div またはデータ設定の構築方法に問題はありません。eval を介して json オブジェクトに完全にアクセスできるためです。