2011-06-30 3 views
0

私は任意の助けのために感謝するでしょう!jQueryのAjaxのJSONデータは、IE(〜9 6)によって正しく処理されない:(

私は「ランダム」の製品と領域を作成するには、次のコードを使用しています。 PHPスクリプトから受け取ったJSONデータがこのようなものです:。

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

「新」の製品は<div id="New">に行く、というようにしなければなりません

問題1:それはすべての罰金のブラウザで正常に動作しますが、 IE( 6〜9)はすべてのdivを空にします。

問題2:このajax-JSONデータをクライアントがキャッシュするようにしたいと思います。 FireBugのように、これらの要求はキャッシュされません。プラグインに頼らなければならないのですか?

$.ajax({ 
    url: "/index.php?AjaxRequest&action=5", 
    dataType: "json", 
    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="#" class="right_sidebar" onclick="location.href=\''+this.link+'\'">'; 
    new_str+= '<img class="right_sidebar_thumb" src="'+this.image+'" alt="'+this.name+'"/></a></li>'; 
    }); 
    new_str+='</ul>'; 
     $('#'+key).append(new_str); 
    }); 
    }}); 
+2

IDが重複していますか? – SLaks

+1

jQueryを使用してJavaScriptからJavaScript onclickイベントを設定するには?真剣に? –

+0

重複するIDはありません。そして、onclickイベントについては、それを動作させる必要があります。動作したら、詳細まで見ていきます。ありがとう! –

答えて

0

私はこれがあなたの問題であるかどうかわかりませんが、私はJSONで作業するとき、問題を見つけるのを助けるために、私は非常に良いと思うオンラインのJSONバリデーターを使用します:http://jsonlint.com/

+0

ありがとう、しかし、私のJSONは有効です... –

0

Jqueryは、特定のIDを持つ要素が1つだけであると想定しています。

<div class=’new-product’/> 

に切り替えて試してみて、捕獲用として

$('.new-product') 

と一致し、JSONオブジェクトの最後の項目はコンマを持っていないというエラーメソッドに

$.ajax({ 
    error: function(){ 
    } 
}); 
+0

私はユニークなIDを持ついくつかのdivを持っています。 idsからクラスへの変更は何も変わらず、エラーはありません...とにかくおかげです。 –

1

チェックを使用してみてくださいその後。私はこれが空の項目であることを処理できないのでIEを壊すことができることを知っています

+0

最後の項目の後にカンマなし... –

0

最後にソリューションが見つかりました! IEがjqueryリクエストをキャッシュしていたことが判明しました。 cache: falseを追加すると問題が解決しました。 IEでダウン!

関連する問題