好的,所以我有这个代码:
$(this).find('article.loading').each( function(i) { var el = this; setTimeout(function () { $(el).replaceWith($('#dumpster article:first')); },speed); });
我想用另一个替换每个元素,但是我想要在每个替换之间有一个延迟.
我不知道为什么这不工作,它只是在一次超时后替换所有这些.
有任何想法吗?
谢谢.
解决方法
您正在遍历元素,并为每个配置添加一个定时器.本质上,为每个元素立即设置一个新的定时器.在所有定时器的第一个tick上,元素被更新.间隔是相同的,所以他们都看起来同时更新.
您的逻辑需要围绕计时器.定时器的每个刻度需要更新集合中的下一个元素.您不需要每个循环,使用定时器结合增量索引作为循环机制,一旦更新了最后一个元素,就停止定时器.
var elements = $(this).find('article.loading'); var index = 0; setTimeout(function () { $(elements).get(index).replaceWith($('#dumpster article:first')); index++; },speed);
像上面的东西,但还记得也停止计时器!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。