大家好,我不知道为什么我的计时功能不起作用。请考虑以下代码......
$( 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秒来显示每条消息,但它只是第一次有效,但在此之后,所有消息都会立即出现。
如果有人可以帮助我,请了解最新情况。
谢谢你们,我会一直在寻找。 :(
答案 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 - 简化演示