循环使用JQuery。重复一个数组

时间:2013-12-09 21:38:12

标签: javascript jquery

我试图让一个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();
}

1 个答案:

答案 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