[英]jQuery/JavaScript delay and display
$(document).ready(function(){
var list = [1,2,3,4,5,6];
var length = list.length;
var i = 0;
var ivl = setInterval( function () {
if (i < length) {
$('#nums').html(list[i]).delay(750);
i++;
}
else {
clearInterval(ivl);
}
}, 750);
});
這個(非常聰明的)示例使用了一個事實,即模數運算符( %
)為您提供了余數,該數是周期性的,因此您可以通過取一個無限增加的數的余數除以list
的長度來使用它來遍歷數組。 。
但是,如果您希望它停止運行,您可以檢查一下列表是否已完成:
var list = [1, 2, 3, 4, 5, 6]; var length = list.length; var i = 0; var finished = false; function repeat() { if (!finished) { document.getElementById('nums').innerHTML = list[i % length]; i++; if (i === length) { finished = true; } } else { clearInterval(interval); } } var interval = setInterval(repeat, 750);
<div id="nums"></div>
聚會晚了,但是如果在每次迭代中執行的代碼花費的時間比間隔時間長,使用setTimeout而不是setInterval會更好嗎? 我的意思是,我知道在這種情況下這不是問題,但這只是做這種事情的更好/更安全的方法。
$(document).ready(function(){
var list = [1,2,3,4,5,6];
var length = list.length;
var i = 0;
(function next(){
if (i < length){
$('#nums').html(list[i++]);
setTimeout(next,750);
}
})();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.