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 对象。