【发布时间】:2011-07-28 18:36:55
【问题描述】:
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 对象。
【问题讨论】:
-
你能分享源码吗?
-
抱歉,目前是本地开发项目。也不能只共享一个页面。
-
为什么不能只发布
div和.data()方法 -
好吧,我可以发布,稍后更新。
-
将代码复制到问题中可能只是一个错误,但是您使用单引号打开
data-settings属性值,并使用双引号关闭它。
标签: jquery firefox custom-data-attribute