Firefox5-jQuery.data()-仅在刷新时有效

Firefox5-jQuery.data()-仅在刷新时有效,jquery,firefox,custom-data-attribute,Jquery,Firefox,Custom Data Attribute,jquery的.data()方法似乎只有在刷新时才起作用,而不是在URL位置栏中按ENTER键重新加载页面时才起作用 但是div就在那里,我已经在console.log中记录了它,无论是在刷新时还是在从缓存加载页面时 有人见过这种行为吗?有什么不对劲吗 $('div.special').each(function(index) { console.log($(this)); //shows clearly that data-settings is set.. if ($

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>

很明显,div或数据设置的构造方式并没有什么问题,因为我可以通过eval很好地访问json对象

我不知道如果没有你的帮助我能帮上多少忙!!!但是这里有一个非常简单的例子来说明
.data()
方法是如何工作的(摘自jquery.com上的例子)->

您可以共享源代码吗?对不起,目前这是一个本地开发项目。也不能只共享一个页面。为什么你不能只发布
div
.data()
方法呢?好吧,我可以发布,马上就会更新。将代码复制到问题中可能是一个错误,但你使用单引号打开
数据设置
属性值,我也在JSFIDLE上尝试了我自己的代码,它在FF5中工作,但JSFIDLE的解释可能与普通页面不同,对吧?等等?当你说它不起作用时,你是什么意思?我在Chrome和FF上的控制台日志中获得“get settings”……当我通过按URL栏中的ENTER键再次加载页面时,我没有收到消息“get settings”。当我点击刷新按钮进行刷新时,我确实得到了它。我在原始消息中添加了一种“解决”此问题的方法。。奇怪的东西,真是太奇怪了!!!!也许在什么地方?也许值得向jquery报告
if ($(this).data('settings')) {
   var settings = $(this).data('settings');
} else if ($(this).attr('data-settings')) {
    eval('var settings = ' + $(this).attr('data-settings') + ';');
}