$。当不为我工作时

时间:2014-04-02 13:55:48

标签: jquery ajax

我已经按照我在Wait until all jQuery Ajax requests are done?找到的所有建议,但我必须遗漏一些基本的建议。

我有这个功能......

function ListScores(leaguex, nameid) {
    return $.ajax({
        url: 'sg_ajaxListData.php',
        data: {
            nme: nameid,
            league: leaguex
        },
        dataType: 'json',
        success: function (rows) {
            for (var i in rows) {
                var row = rows[i];
                var score1 = row["score1"];
                var score2 = row["score2"];
                var round = row["round"];
                $('#output').append("<br />Round " + round + " - " + score1);
                if (leaguex == 'r') {
                    $('#output').append(" " + score2);
                }
            }
        }
    });
}

从我的代码的document.ready函数调用它并且工作正常,返回数据并按预期显示它。 我希望另一个函数运行后,ListScores()显示了它的数据,所以,在document.ready函数的其他地方我放了......

$.when(ListScores()).done(function(a1){
console.log("hello",leaguex,nameid, a1);
});

...但是控制台日志中没有显示任何内容,因此看起来这个函数永远不会被调用。 我错过了一些明显的东西吗?

由于 史蒂夫

1 个答案:

答案 0 :(得分:-1)

编辑: 在@Jason P评论之后,我认为这是错误的解决方案 但是我会保留它,因为它显示了如何自动调用函数 ---编辑结束

它没有被触发,因为从未调用过ListScores()

你应该包装ListScores()并立即调用它。

function ListScores(){

}

调用它

您应该添加以下内容

 (function ListScores(){

 })();

知道了吗?