jQuery AJAX setTimeout回调

时间:2018-02-28 23:01:46

标签: javascript jquery ajax promise modal-dialog

我正在写一个游戏而且我被困在这一部分...... 在战斗期间,我有一个骰子滚轮,必须通过Ajax加载,我继续运行的问题是如何调用滚轮然后等待用户滚动然后继续在战斗中我感觉它只是在我的范围之外。我试过......

function continuecombat(enemyid,character,action)
{////gets the modal
    $.ajax({
        url: url,
        type:"post",
        data:{dice:"",reason:action,characterid:cid,eid:enemyid},
        success: function(newHTML, textStatus, jqXHR) 
        {
            $(newHTML).appendTo('body').modal({
                escapeClose: false,
                clickClose: false,
                showClose: false  
            }); 
        }
    });
    getcontinueroll(enemyid,character);
}
function getcontinueroll(enemyid,character)
{ ///// checks to see if the dice has been rolled
    $.ajax({
        url: url,
        type:"post",
        data:{action:"getroll",charid:cid},
        success: function(roll) 
        {
            if(roll== "0")
            {
                setTimeout(function() 
                 {
                      getcontinueroll(enemyid,character)
                 },2000);
            }
            else
            {
                getcontinueactions(roll,enemyid,character);
            }
        }
    }); 
}

然后将骰子标记为滚动

function after_roll(notation, result) 
{
    $.ajax({
        url: url,
        type:"post",
        data:{"action":"markroll","charid":cid,"roll":result},
        success: function(newHTML) 
        {

        }
    });
}

但是这会在战斗结束后继续进行额外的ajax调用。由于存在不同类型的辊,因此辊必须保持通用。我将不胜感激任何帮助。可以访问在主屏幕和滚轴上创建的任何变量

1 个答案:

答案 0 :(得分:-1)

经过几天的思考,解决方案让我面对面,我已经将信息传递给模态,所以我只是将函数调用移动到滚动分辨率并绕过了检查滚动的ajax调用。有时,解决问题的最佳方法就是离开。