JS变量作用域问题
var incontext = '';
$.ajax({
url:'index.php?act=load&parid='+classid+'&t='+Math.random(),
dataType:'json',
error:function(){
alert('载入错误');
},
success:function(d){
for(n=0;n<d.length;n++){
switch(d[n].type){
case '1'://文字
incontext += '<li><span>喜欢<strong>5</strong>评论<strong>4</strong></span><img src="images/s_text_icon.png" /><a href="index.php?act=post&parid='+classid+'">我的故事</a></li>';
break;
case '4'://图片
break;
case '2'://音乐
break;
case '3'://视频
default://分类
}
}
}
}); alert(incontext);
incontext的作用域咋全局,这样alert出来还是空的
如何给incontext定义。。。
------解决方案--------------------
因为ajax()方法默认是以异步方式进行请求的,也就是发出请求后,浏览器不会等待服务器返回数据就急需执行后续代码了(也就是后续的alert(incontext);语句)。如果你要弹出修改后的incontext变量值,就得指定ajax()方法以同步的方式进行处理,方法是设置async选项为false值:
JScript code
$.ajax({
url:'index.php?act=load&parid='+classid+'&t='+Math.random(),
dataType:'json',
async: false,
//...
------解决方案--------------------
alert放到回调函数里