var J_lis = $(".display");
// loop thought each element
J_lis.each(function(g){
g = self.setInterval(function () {
alert("this");
}, 1000);
})
我的目的是设置每个元素的循环并为每个元素设置一个间隔。所以第一个元素去,第二个元素将在1000之后开始,依此类推。但是这个代码不会逐一进行,它会快速循环4次,然后停止并再次进行4次。
我希望每个人每个人等待1000个。
for (var f=0; f < J_lis.length; f++){
f = self.setInterval(function () {
// code
}, 1000);
}
这段代码工作得很好,就像我想要的那样,但我想在每个jquery上设置,有没有办法做到这一点?
答案 0 :(得分:0)
你应该增加循环间隔的延迟。设置与循环索引相关的间隔延迟。例如(index + 1) * 1000
$(".display").each(function(i,ele){
setTimeout(function() {
console.log($(ele).text());
}, (i+1)*1000);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="display">Element 1</div>
<div class="display">Element 2</div>
<div class="display">Element 3</div>
<div class="display">Element 4</div>
<div class="display">Element 5</div>