我没有看到ajax程序后的值

时间:2012-02-21 22:40:39

标签: jquery

这是使用jQuery ajax并从php文件中获取数据。

我可以在第一次和第二次警报时看到我想要的数据但是,我不知道为什么我看不到第三次警报中的任何值。

function getMarkerContent(marker)     {
          // Fetch data from database          
          var ret = "<ul>";
      var temp = "";
      var process = "";

      $.get("../status.php", function (returnValue) {
          var json = eval("(" + returnValue + ")");
          $.each(json, function (key, state) {
              obj = state;
              ret += "<li>" + obj.member_id + ": " + obj.content + "</li>";
              temp += obj.member_id + ": " + obj.content + "\n";

          });
          process = processfunction(temp);
          alert(temp);  // first alert
          ret += "</ul>";
      });

      alert(process); // third alert
   }
  function processfunction(data) {

      alert(data);
      return data;  // second alert
  }

1 个答案:

答案 0 :(得分:2)

恭喜!你刚刚发现了为什么存在回调。

http://api.jquery.com/jQuery.get/

您的第一个和第二个警报是在.get success回调函数中触发的,因此只有在AJAX方法返回结果后才会调用。

您的第三个警报发生在回调之外,因此在AJAX方法返回任何数据之前会触发它。