我希望定期显示3行(一秒),这里是代码:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
function showText()
{
var itemlist = document.getElementsByClassName("test");
function additem(index) {
setTimeout(function(){itemlist[index].setAttribute("style", "display:block;");}, 1000);
}
for(var i=0;i<itemlist.length;++i) {
additem(i);
}
}
</script>
</head>
<body>
<input type="button" value="show" onClick="showText()">
<div class="test" style="display:none">first</div>
<div class="test" style="display:none">second</div>
<div class="test" style="display:none">third</div>
</body>
</html>
但结果是:当我点击显示按钮时,一秒钟后, 所有三个div块一起出现。我期待它们将以1秒的间隔逐个显示。
我该如何解决这个问题?希望得到你的帮助。
答案 0 :(得分:2)
你同时打电话给所有人。仅清楚地使用line1
。
setTimeout(line1, 1000);
setTimeout(line2, 1000);
setTimeout(line3, 1000);
他们没有&#34;堆积&#34;。这三个函数都将在1秒内运行。
您有两种选择。选项1:
setTimeout(line1, (1 + index) * 1000);
setTimeout(line2, (1 + index) * 1000);
setTimeout(line3, (1 + index) * 1000);
这会导致它们一个接一个地超时。
另一个选项是将超时调用作为下一个调用:
var index = 0;
function showNextLine() {
// show line index
index++;
if (index < 3) {
setTimeout(showNextLine, 1000);
}
}
setTimeout(showNextLine, 1000);
通过这种方式他们&#34;链&#34;就像你可能期待的那样。
还有其他变体,您甚至可以使用setInterval()
和clearInterval()
。
答案 1 :(得分:-1)
SHA-1(SHA-1(SHA-1(attempt + salt))) === Result
$(document).ready(function() {
var count = 0;
setInterval(function() {
showIframe(count);
count++;
if (($('.wall-display').length - count) < 1) {
count = 0;
}
}, 1000);
function showIframe(count) {
$('.wall-display').fadeOut('fast');
$('#frame' + count).fadeIn('fast');
}
});
.wall-display:not(:first-child) {
display: none;
position: absolute;
}