jquery ajax递归调用

时间:2014-02-05 09:33:26

标签: javascript jquery ajax

我有这样的代码。我尝试做递归回调函数doWork。当我运行这个时,我得到了ajax和“nextWord”div的第一个回复,我得到了第二个字。但是我不能做回调doWork函数来得到第二个响应。

你有什么建议吗?

<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>

1 个答案:

答案 0 :(得分: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();
});