返回值的问题 下班结帖!

happy664618843 2010-10-21 03:51:04
     
//这里获取的值还是为null???为什么
T$('area1').onmouseover = function() { TINY.box.show(getData(), 0, 0, 0, 1) };

function getData()
{
var datas=null;
$.ajax
(
{
type: "POST",
url: "Handler.ashx?method=getlist",
async: true,
contentType: "application/json",
dataType: 'json',
success: function(result) {
var temp = eval(result);
var html = "";
datas= result[0].ProName;
alert(datas);//这个是有值的 弹出项目一

// for (var i = 0; i < temp.length; i++) {
// o.innerHTML += "项目名称:" + temp[i].ProName + "<br/>网址:<a href=" + temp[i].url + " target='_blank'>" + temp[i].url + "</a><br/>";
// }
}

});
//到这里怎么还是为null????
return datas;
}
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy664618843 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 damjmk2 的回复:]

一般来说实现异步最好在 异步回调成功 也就是 success: function(result) {
函数中做你要做的事情,如果是同步,那么在数据取回来之前,整个页面将会等待结果,这样用户体验不好,
用到了ajax一般都是异步用来实现页面的局部更新
[/Quote]
恩 是的 !
damjmk2 2010-10-21
  • 打赏
  • 举报
回复
一般来说实现异步最好在 异步回调成功 也就是 success: function(result) {
函数中做你要做的事情,如果是同步,那么在数据取回来之前,整个页面将会等待结果,这样用户体验不好,
用到了ajax一般都是异步用来实现页面的局部更新
happy664618843 2010-10-21
  • 打赏
  • 举报
回复
可以结帖了 5点半结!
claymore1114 2010-10-21
  • 打赏
  • 举报
回复
async: false 同步
happy664618843 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 damjmk2 的回复:]

也就是说你Return的时候 数据还没有取回来 datas 还没有被赋值

你可以改成同步试试 async: false,

或者在异步成功以后做你要做的事情
[/Quote]
恩 对 改成false就ok了!!
吴青峰 2010-10-21
  • 打赏
  • 举报
回复
当然了,异步返回值只对success: function(result) {}大括号里面起作用。
如果想获得datas的值,现在success: function(result) {}大括号里面把值赋予隐藏域,在通过隐藏域获取。
正常来说也是这样做。
yangjiexiazai 2010-10-21
  • 打赏
  • 举报
回复
我顶吧 搞不明白意思
shaoliang520xi 2010-10-21
  • 打赏
  • 举报
回复
后台代码呢。你值没拿到,当然是空的
damjmk2 2010-10-21
  • 打赏
  • 举报
回复
也就是说你Return的时候 数据还没有取回来 datas 还没有被赋值

你可以改成同步试试 async: false,

或者在异步成功以后做你要做的事情
damjmk2 2010-10-21
  • 打赏
  • 举报
回复
你是异步取的,当然为null

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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