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对象。
答案 0 :(得分:0)
我不确定如果没有看到你的来源我会有多大的帮助!但是这里有一个非常简单的例子,说明.data()
方法是如何工作的(取自jquery.com上的例子) - &gt; http://jsfiddle.net/yR3KG/