我有这个简单的JavaScript:
$("body").children("div").each( function() {
$(this).hide();
});
目标是:
我该怎么做?
答案 0 :(得分:0)
您可以使用.promise()
,.delay()
,setTimeout()
,function toggleCollection(elems, duration, wait) {
return elems.queue("toggle", $.map(elems, function(el) {
return function(next) {
return $(el).delay(duration).toggle(duration).promise().then(function() {
$(this).delay(wait /* or duration */).toggle(duration)
.promise().then(function() {
setTimeout(next, wait)
})
})
}
})).dequeue("toggle").promise("toggle");
}
toggleCollection($("body > div").hide(), 3000, 1000 * 60 * 60)
.then(function(elems) {
console.log("complete", elems);
// toggle collection again
// toggleCollection(elems, 3000, 1000 * 60 * 60)
});
Dim m as sub
Public sub alg1()
call alg2()
End sub
Public sub alg2()
m = alg1
call alg3()
End sub
Public sub alg3()
call m
End sub
答案 1 :(得分:0)
您可以轻松完成,首先使用:gt()
选择除第一个孩子以外的所有孩子并隐藏它们。然后在计时器隐藏可见的孩子并显示下一个孩子。请注意:visible
选择可见元素,.next()
选择下一个元素。
$(".list > div:gt(0)").hide();
setInterval(function(){
$(".list > div:visible").hide().next().show();
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="list">
<div>Child 1</div>
<div>Child 2</div>
<div>Child 3</div>
<div>Child 4</div>
<div>Child 5</div>
<div>Child 6</div>
<div>Child 7</div>
</div>