我会感谢任何帮助!
我正在使用以下代码创建具有“随机”产品的区域。 从php-script收到的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);
});
}});
答案 0 :(得分:1)
检查JSON对象中的最后一项是否后面没有逗号。我知道这可以打破IE,因为它无法处理有空项目
答案 1 :(得分:0)
Jquery期望只有一个具有给定id的元素。尝试切换到
<div class=’new-product’/>
并与
匹配$('.new-product')
至于捕获,请尝试使用错误方法
$.ajax({
error: function(){
}
});
答案 2 :(得分:0)
我不知道这是不是你的问题,但是当我使用JSON时,我经常遇到JSON结构的问题。为了帮助找到问题,我使用了一个非常好的在线JSON验证器:http://jsonlint.com/
答案 3 :(得分:0)
终于找到了解决方案!
事实证明IE正在缓存jquery请求。
添加cache: false
解决了这个问题。
用IE浏览器!