我正在尝试做一个简单的调用,从 $.ajax() 获取数据,并希望将其保存到一个全局变量中,我可以在调用 ajax 调用的函数中使用该变量。
为什么没有设置变量?为什么我设置的值会丢失?
jQuery.support.cors = true;
$.myNamespace = {
timerID: "in namespace"
};
$(document).ready(function () {
$("#btnSkip").click(function () {
alert($.myNamespace.timerID);
startCall();
});
function startCall() {
$.myNamespace.timerID = "in startCall()";
alert($.myNamespace.timerID);
finishCall();
alert($.myNamespace.timerID);
}
function finishCall() {
$.myNamespace.timerID = "in finishCall()";
alert($.myNamespace.timerID);
$.ajax({
type: "GET",
url: getUrl,
processData: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$.myNamespace.timerID = "in ajax succeeded call";
alert($.myNamespace.timerID);
},
error: function (xhr, status, error) {
GetSongInfoFailed(xhr, status, error);
}
});
}
function GetSongInfoFailed(xhr, status, error) {
alert('Service call failed: ' + xhr + ' ' + status + ' ' + error);
}
});
alert()
上面代码中 s 的输出:
in namespace
in startCall()
in finishCall()
in ajax succeeded call
in finishCall()
为什么最后一个变量设置为“infinishCall()”而不是“in ajax succeeded call”?
请注意,我不是 jQuery 或 javascript 专家。
太感谢了!