求大拿指点

dayrenlar 2012-10-19 05:07:27
先把代码贴一下:
var userid = "";
var userlogoCallback = jQuery.extend({
callback: function () { return false; }
}, userlogoCallback || {});
userlogoCallback.callback = function (user) {
if (user != null && user.UserEntity != null) {
userid = user.UserEntity.UserID;
alert(userid) }
}
alert(userid)
========================================================
绿色的alert输出有值,红色的没有,这是为什么
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a8509190 2012-10-20
  • 打赏
  • 举报
回复
ajax是异步请求 就是执行ajax同时去执行下面的语句 不会等ajax执行完成在去执行下面的
  • 打赏
  • 举报
回复
老问题了。绿色部分是在AJAX请求之后才调用的,因为有callback,就是专为异步调用准备的。
所以你在下面马上用红色代码去显示时,请求还没有返回,当然没有值。
泡泡鱼_ 2012-10-19
  • 打赏
  • 举报
回复
userlogoCallback.callback不执行,不会有值吧?
代码太少,不知道你具体怎么使用的,不好说。下面是我直接测试的
var userid = "";
var userlogoCallback = jQuery.extend({callback: function () { return false; }}, userlogoCallback || {});
userlogoCallback.callback = function (user) {
//if (user != null && user.UserEntity != null) {
userid = "1";//user.UserEntity.UserID;
alert(userid)
//}
}
userlogoCallback.callback();
alert(userid)
Go 旅城通票 2012-10-19
  • 打赏
  • 举报
回复
注意ajax是异步的,且jq默认ajax是异步的,执行ajax后会继续执行下面的语句,和回调中的userid不一样的,要执行ajax为同步的。

代码也少了点吧,大概猜就是同步没处理好了
yibey 2012-10-19
  • 打赏
  • 举报
回复
没看过jquery的源码,给的代码又太少了,

所以帮顶吧
franzhong 2012-10-19
  • 打赏
  • 举报
回复
我测绿色未弹啊

87,915

社区成员

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

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