如何在异步方式中给全局变量赋值(jquery相关)

baixiaoyusky 2010-07-06 09:17:29
问题是这样的:定义一个全局全量,例如:var i=0;
然后调用jquery的一个函数
$.get(url, function(data) {
i=9;
})
alert(i);
得到的是0而不是9.我想得到函数中给他赋的值9,要怎么办。我知道$.get(url,function(data){i=9})是异步执行的。要怎么办才能在异步方式中给全局变量赋值?
...全文
523 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WebAdvocate 2010-07-07
  • 打赏
  • 举报
回复
lz 你在回调里执行 肯定是9,呵呵 只是一个延迟的问题。
passself 2010-07-07
  • 打赏
  • 举报
回复
肯定啊,里面的i值已经被提交了
mky81 2010-07-06
  • 打赏
  • 举报
回复
因为发送的是异步请求,实际上i值已经改变了,只不过没有马上alert中表现出来,如果你再加个button,重新触发alert(i),就能得到9

var i=0;
$.ajax({
url:"test.html",
success:function(){
i = 9;
},
async: false
});
alert(i)

另外,$.get似乎没有async的option,如果使用$.ajax并将async设置为同步请求,就可以马上获得改变过的i值

87,917

社区成员

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

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