js全局变量在函数内赋值后,再在外部引用问题

mr_zhu 2011-09-14 04:23:58
定义了全局的变量,在函数内部赋值后,再在外部不能直接用 还是空 而引用一下例如alert一下才会有值
怎么办就能实现直接引用呢
...全文
1936 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
豆虫 2011-09-14
  • 打赏
  • 举报
回复
这个问题不是楼主标题上理解的那样 这是个ajax异步引起的变量值改变问题
如果在ajax外部声明一个变量 其后续处理过程必须在ajax的handler中处理 否则会由于异步的原因 造成变量未正常赋值
gouxiongyaya 2011-09-14
  • 打赏
  • 举报
回复
在$.ajax方法中加入async :false
意思让这个同步
$.ajax默认是异步的,异步的话在方法里赋值,外面是取不到的
可以找相关资料看一下
mr_zhu 2011-09-14
  • 打赏
  • 举报
回复
第一个alert为空 ,第二个 success后的 能输出 第三个 为空 下面第四个就能输出值了 然后alert(wcw)也能正常输出
但是把第三第四个去掉 alert(wcw)就没有值了
KK3K2005 2011-09-14
  • 打赏
  • 举报
回复
查阅
ajax同步 异步
mr_zhu 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 knightzhuwei 的回复:]
上代码
[/Quote]
var f_perform=new Array();
var f_user=new Array();
var f_id=new Array();
alert(f_id);
$.ajax({
type:"GET",
url:"../php/f_coordGet.php",
data:{"useId":u_id},
dataType:"json",
success:function(msg){
f_user=msg.slice(0,240);
f_perform=msg.slice(240,480);
f_id=msg.slice(480,720);
alert(f_id)

}//success
})//ajax

alert(f_id);
alert(f_id);
for(i=0;i<240;i++){
$("#a"+i).attr({"c_id":f_id[i],"perform_id":f_perform[i],"user_id":f_user[i]});
// $("#a"+i).p_show();

}

var wcw=$("#a12").attr("c_id");
alert(wcw);
knightzhuwei 2011-09-14
  • 打赏
  • 举报
回复
上代码

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧