Итерация с .each через jQuery ajax json не работает в IE - PullRequest
0 голосов
/ 01 июля 2011

Я использую следующий код для создания div с "случайными" продуктами. Данные JSON, полученные из PHP, выглядят так:

{"New":[{"product_id":"50",...},...],
"Best":[{"product_id":"26",...},...],
...}

«Новые» товары должны перейти к <div id="New">, «Лучшее» - «Лучшее» и т. Д.

Код:

$.ajax({
    url: "/index.php?AjaxRequest&action=5",
    dataType: "json",
    error: function (xhr, status, errorThrown) {
        alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
    },

    success: function (data) {
        $.each(data, function (key, value) {
            var new_str = '<ul>';
            $(value.sort(function () {
                return 0.5 - Math.random()
            }).slice(0, 3)).each(function () {
                new_str += '<li><a href="' + this.link + '" class="right_sidebar">';
                new_str += '<img class="right_sidebar_thumb" src="' + this.image + '" alt="' + this.name + '"/></a></li>';
            });
            new_str += '</ul>';
            $('#' + key).append(new_str);
        });
    }
});

Проблема возникает только с IE. Он повторяется только в первый раз и заполняет только первый div, тогда как все остальные браузеры работают нормально.

Проблема не в повторяющихся идентификаторах, и JSON действителен, а jQuery не выдает ошибок.

1 Ответ

0 голосов
/ 01 июля 2011

Проблема теперь решена!Необходимо отключить кеширование: cache:false!Спасибо всем!

...