这是使用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
}
答案 0 :(得分:2)
恭喜!你刚刚发现了为什么存在回调。
http://api.jquery.com/jQuery.get/
您的第一个和第二个警报是在.get
success
回调函数中触发的,因此只有在AJAX方法返回结果后才会调用。
您的第三个警报发生在回调之外,因此在AJAX方法返回任何数据之前会触发它。