2014-02-05 94 views
0

我有這樣的代碼。我嘗試做遞歸回調函數doWork。當我運行這個時,我從ajax得到了第一個響應,在「nextWord」div中我得到了第二個單詞。但我不能做回調doWork函數來獲得第二個響應。jquery ajax遞歸調用

你有什麼建議嗎?

<script> 

    function doWork() { 
     $.ajax({ 
      type: "POST", 
      url: "eu.php", 
      data: { word: $('#nextWord').html()}, 
      dataType: 'json', 
      success: function(msg) { 
       alert($('#nextWord').html()); 
       $("#nextWord").html(msg.nextWord); 
       $("#query").html(msg.query); 
       doWork(); 
       //doWork; --- I try and this 
      },     
     }); 
    } 

    $(function() { 
     doWork(); 
    }); 
</script> 


<div id="nextWord">firstword</div> 
<div id="query"></div> 
+0

可能重複的[調用JavaScript函數遞歸](http://stackoverflow.com/questions/7065120/calling-a-javascript-function-recursively) – Cerbrus

回答

0

您應該使用.then而不是成功回調來避免兩個處理程序的相同事情。的

<script> 

function doWork() { 
    $.ajax({ 
     type: "POST", 
     url: "eu.php", 
     data: { word: $('#nextWord').html()}, 
     dataType: 'json', 
     success: function(msg) { 
      alert($('#nextWord').html()); 
      $("#nextWord").html(msg.nextWord); 
      $("#query").html(msg.query); 

     },     
    }).then(function(data){ 
       doWork(); 
       }); 
} 

$(function() { 
    doWork(); 
});