延迟jquery不起作用

时间:2016-05-23 21:27:50

标签: javascript jquery ajax delay

大家好,我不知道为什么我的计时功能不起作用。请考虑以下代码......

$( document ).ready(function() {
    $.ajax({
        type: 'GET',
        url: 'conversation.json',
        dataType: 'json',
        success: function (data) {
            var conversation = data.conversation1;
            $.each(conversation, function(i, user) {
                setTimeout(function () {
                    $('<li>').attr({
                        class : 'list-group-item',
                    }).text(user.nombre + " : " + user.text).
                    appendTo('#messages');
                }, 3000);
            });
        }
    });
});

我通过ajax得到一个json,我希望通过创建时间1或2秒来显示每条消息,但它只是第一次有效,但在此之后,所有消息都会立即出现。

如果有人可以帮助我,请了解最新情况。

谢谢你们,我会一直在寻找。 :(

1 个答案:

答案 0 :(得分:4)

.each循环中的超时延迟乘以迭代计数,使其显示为每条消息的递增延迟。请注意以下内容......

$.each(conversation, function(i, user) {
    setTimeout(function () {
        $('<li>').attr({
            class : 'list-group-item',
        })
        .text(user.nombre + " : " + user.text)
        .appendTo('#messages');
    }, 3000 * (i + 1)); // 3000, 6000, 9000 etc.
});

JSFiddle Link - 简化演示