0

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

4

1 回答 1

0

如果没有看到你的消息,我不确定我能提供多少帮助!但这里有一个非常简单的例子,说明该.data()方法是如何工作的(取自 jquery.com 上的例子)-> http://jsfiddle.net/yR3KG/

于 2011-07-28T10:15:53.127 回答