Firefox 5 - jQuery.data() - 仅适用于刷新

时间:2011-07-28 10:07:35

标签: 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 ($(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对象。

1 个答案:

答案 0 :(得分:0)

我不确定如果没有看到你的来源我会有多大的帮助!但是这里有一个非常简单的例子,说明.data()方法是如何工作的(取自jquery.com上的例子) - &gt; http://jsfiddle.net/yR3KG/