Я использую следующий код для создания 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 не выдает ошибок.