使用jquery返回变量时遇到问题

时间:2011-10-01 23:38:22

标签: jquery return

我不知道为什么这段代码不起作用:S

function check(){
  var haySaldo=false;
  $.post("controlarSaldo.php", function(data)

 {  
        if(data>0)
          haySaldo=true;
  });

   return haySaldo;
}

信息:

数据= 1000

我在jquery中发出了haySaldo的警报,我得到了“真实”,但在jquery之外,我得到了“假”:S

提前很多!

2 个答案:

答案 0 :(得分:0)

您的return语句似乎不在您的职能范围内。

试试这个

$.post("controlarSaldo.php", function(data){   
    var haySaldo=false;    
    if(data>0){
        haySaldo=true;
    }
    return haySaldo;
});

答案 1 :(得分:0)

如果您已经理解了这一点,请道歉,但这个jQuery post方法是AJAX请求的简写,这意味着您的代码不会等到AJAX请求完成后再返回haySaldo的值(如您所写)

通过从成功方法内部调用return,有点不清楚你打算做什么。也许如果您提供更多信息,人们可以提供更好的建议。

您可能希望查看的一件事是jQuery的deferred objects。它可以让你做这样的事情。

function check(){
  return $.post("controlarSaldo.php").success(function(data)
    {  
    if(data>0)
      return true;
    else
      return false;
    });
}

然后在你的代码中你可以做(​​未经测试)。

check().done(function(resp){ 
  if(resp){
    // Do true thing
  }
  else{
    // Do false thing
  }
});