JQuery .get函数变量

时间:2010-10-10 22:17:02

标签: javascript jquery

再次遇到问题是javascript的新手。我希望使用JQuery的get来获取我的PHP脚本的回复。这是我的功能

function getNext(){
    var returnData = null;
    $.get("get.php", {task:'next'}, function(responseText){
        returnData = responseText; }, "text");  
    return returnData;      
}

现在很明显,即使请求成功,该函数也会返回null。为什么? 感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

因为ajax是异步的,所以它独立地独立运作,所以当return语句完成时,它还没有被分配。

答案 1 :(得分:5)

function getNext(){
   var returnData;  
   $.ajax({
      url: "get.php",
      data: {task:'next'},
      success: function(responseText) { returnData = responseText },
      async: false;
   });
   return returnData;      
}

请注意,这可能会“冻结”UI,因为Javascript是单线程的 - 它会等到收到服务器的响应。

您可能想要重构它,以便在success回调中调用该操作。你能告诉我们是什么触发了getNext方法的调用吗?

答案 2 :(得分:0)

试试这个

function getNext(){
  var returnData = null;
  $.get("get.php", {task:'next'}, 
    function(responseText){
      returnData = responseText;
      alert('Data ' + responseText);
    });
}

您必须轮询returnData是否包含您想要的实际数据(或将您的代码放入回调方法)