js中局部变量赋值出现错误(要输出之后在引用才会正确)
function judge(){
var t3=0;
var url="/zz.app.engineering/app_engineering/projectOpportunity/judge/"+id+"";
$.getJSON(url,function(result){
t3=result;
});
alert(t3);
if(t3==1){
alert(t3);
$.alert("此项目机会已经存在!");
return false;
}
}
当项目存在,result=1时去掉红色的alert(t3)不出现预期的结果,不去掉会得出结果,但是弹出的t3的值顺序是0 1
求解答呀,谢谢
------解决方案--------------------
因为那是异步执行的 去掉红色的提示之后 就会出现在判断t3==1的时候t3=result;还没执行,不去掉的话由alert所带来的时间足够让回调函数执行了t3=result;,所以才会出现那样的情况。所以解决方法就是在进行t3==1的判断时先判断回调函数是否已经执行
------解决方案--------------------function judge(){
var boole=false;
var t3=0;
var url="/zz.app.engineering/app_engineering/projectOpportunity/judge/"+id+"";
$.getJSON(url,function(result){
t3=result;
alert(t3);
if(t3==1){
alert(t3);
$.alert("此项目机会已经存在!");
boole=false;
}else{
boole=true;
}
});
return boole;
}
给你改进了一下,因和服务端交互时不可能马上返回值,你要写到$.getJSON的fn中通信成功反回值后你才可以判断,多看看ajax