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 に答える