Jquery,在前一个函数级联完成后执行一个函数

时间:2014-08-22 13:37:48

标签: javascript jquery html css ajax

我需要一些专家来说明我如何实现这一目标。 我有这个html代码是多项选择(从A到E)问题的一部分

<div id="correct-answer-XXXXX" style="display:none;"></div>
<div id="wrong-answer-XXXXX" style="display:none;"></div>

我还有这个提交到远程URL的jquery ajax代码(我没有访问代码)并更改上面的div之一,将状态从显示'style'更改为'block'并隐藏换句话说,另一个,表明你的答案是对还是错。

var vector = new Array('A','B','C','D','E');
var i = 0;
  function answerquestion(XXXXX,choice){
    $.ajax({
        type:"POST",
        dataType:'jsonp',
        data:{choice},
        url:"http://myremoteurl.com/"+XXXXX,
        beforeSend:function(){
        },
        complete:function(){
          var style = $("#correct-answer-"+XXXXX).css("display");
          if (style == "block") {
            //ill do something with the correct answer 
          } else {
            i++;
            answerquestion(XXXXX,vector[i]);
          }
        }
      })
  }

该代码适用于一个问题,但我需要按顺序执行此功能,比如连续60到100次,当我得到第一个的答案时,运行第二个

我有一个div填充了包含数据XXXXX的字段,所以我可以使用这些字段在某种循环中获取XXXXX变量,例如:

<div id="fieldscontainer">
<input type="hidden" name="111111" value="111111">
<input type="hidden" name="222222" value="222222">
<input type="hidden" name="333333" value="333333">
...
<input type="hidden" name="XXXXXX" value="XXXXXX">
</div>

所以获得正确答案的唯一方法是使div的样式正确 - 答案 - XXXXX,但是一个简单的$ .each循环不会有帮助,因为functon本身必须运行几次才能找到正确的答案

图片说明了我想要实现的目标: enter image description here

1 个答案:

答案 0 :(得分:0)

使用

async : false

$.ajax({
    type:"POST",
    dataType:'jsonp',
    async : false, /// add this line

希望这有帮助