2011-07-01 9 views
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ではエラーは発生しません。

+0

ランダムな関数でソートするのは、スーパーの良いアイデアではありません。実際にどのくらいの時間がかかるか分かりませんし、とにかく良いシャッフルにはなりません。 – Pointy

+0

どちらが繰り返していないか、外側のものか内側のものか。 –

+0

外側のものはIEで初めて初めてです –

答えて

0

問題は解決しました。 キャッシングをオフにする必要がありました:cache:false! みなさんありがとう!

関連する問題