我试图让一个JQuery片段循环并继续显示数组中的消息。这就是我到目前为止所做的工作,即使我将计数器设置为100,它也不会在一次之后循环。
我做错了什么?什么是最佳实践?为什么?
提前致谢
function popMessage() {
$('#message').html(messages.pop()).fadeIn(500).delay(1000).fadeOut(500, popMessage);
};
for (var i = 0; i < 100; i++) {
var messages = [
"Message 1",
"Message 2",
"Message 3",
"Message 4",
].reverse();
$('#message').hide();
popMessage();
}
答案 0 :(得分:2)
您正在删除阵列中的所有元素。只需将其推到开始循环重复即可。此外,您可以删除该循环,无论如何您调用该方法作为fadeOut的回调。尝试:
function popMessage()
{
var msg = messages.pop();
messages.unshift(msg);
//You can avoid reversing of array and use the below script as well.
//var msg = messages.shift();
//messages.push(msg);
$('#message').html(msg).fadeIn(500).delay(1000).fadeOut(500, popMessage);
};
<强> Demo 强>