0
次のコードを使用して、「ランダム」な製品でdivを作成しています。 PHPから受け取ったJSONデータは、このようなものです:jQueryを使用した繰り返しjQuery ajax jsonがIEで動作しない
{"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だけを塗りつぶしますが、他のブラウザはすべて正常に動作します。
問題はdiv idsが重複していないため、JSONは有効で、jQueryではエラーは発生しません。
ランダムな関数でソートするのは、スーパーの良いアイデアではありません。実際にどのくらいの時間がかかるか分かりませんし、とにかく良いシャッフルにはなりません。 – Pointy
どちらが繰り返していないか、外側のものか内側のものか。 –
外側のものはIEで初めて初めてです –