我正在尝试理解jQuery的getJson()。我想把它返回的数组放入变量put我不知道如何。当我点击此代码中的开始按钮时,我得到了未定义。我知道PHP文件中的所有内容都有效,所以我认为这个问题并不存在。
function getGameData(){
var difLevel = $("input[@name=difLevel]:checked").val();
var gameData = (function(){
var json = null;
$.getJSON('/Spelling4/core/proof_Test_JSON_process4.php',{difNo : difLevel},function(data){
json = data;
});
return json;
});
return gameData;
}
$('#startButton').click(function(e) {
var gameData = getGameData();
e.preventDefault();
alert(gameData[1]);
});
答案 0 :(得分:1)
Ajax是异步的,当你调用你的函数时,如果ajax请求没有完成,你的函数会返回null
,你应该使用deferred对象。请注意,您的属性选择器错误,您应该删除@
。
var difLevel = $("input[name=difLevel]:checked").val();
答案 1 :(得分:1)
JSON返回数据将以您指定的json变量结束。但是,JSON查询是异步的,因此在getGameData()函数完成时尚未返回响应。
您需要在$ .getJSON(...)中使用JSON数据,而不是返回它。
答案 2 :(得分:0)
我认为你在游戏数据中存储了一个功能。您应该能够使用gameData()
访问这些值