0

我试图理解 jQuery 的 getJson()。我想将它返回的数组放入我不知道如何放置的变量中。当我单击此代码中的开始按钮时,我变得不确定。我知道 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]);
});
4

3 回答 3

1

Ajax 是异步的,当你调用你的函数并且如果 ajax 请求没有完成你的函数返回null你应该使用延迟对象。请注意,您的属性选择器是错误的,您应该删除@.

var difLevel = $("input[name=difLevel]:checked").val();
于 2012-10-13T15:23:16.283 回答
1

JSON 返回数据将在您指定的 json 变量中结束。但是,JSON 查询是异步的,因此当 getGameData() 函数完成时没有返回响应。

您需要在 $.getJSON(...) 中使用 JSON 数据,而不是返回它。

于 2012-10-13T15:23:42.807 回答
0

我认为您正在将函数存储在游戏数据中。您应该能够使用 gameData() 访问这些值

于 2012-10-13T15:25:18.607 回答