在jquery中使用循环在页面上显示数组内容

在jquery中使用循环在页面上显示数组内容,jquery,Jquery,我有几个字符串要显示在一个div中,但它们应该淡入/淡出,并被循环回第一个字符串的数组中的下一个字符串替换 freenode IRC上的#jquery的科克建议我使用.queue,但它似乎不起作用。什么也没有出现 我哪里出了问题 此代码基于 /* 按顺序淡入淡出上面的每个字符串作为div的内容 循环 */ 变量消息=[ “通过智能手机进行的成熟节食”, “学术伊奇饮食”, “仅限400.00南非兰特/年”, “在手机上遵循这一超级饮食”, "" ]; 函数IntroText(){ var i=

我有几个字符串要显示在一个div中,但它们应该淡入/淡出,并被循环回第一个字符串的数组中的下一个字符串替换

freenode IRC上的#jquery的科克建议我使用.queue,但它似乎不起作用。什么也没有出现

我哪里出了问题

此代码基于


/*
按顺序淡入淡出上面的每个字符串作为div的内容
循环
*/
变量消息=[
“通过智能手机进行的成熟节食”,
“学术伊奇饮食”,
“仅限400.00南非兰特/年”,
“在手机上遵循这一超级饮食”,
""
];
函数IntroText(){
var i=0;
var Div=$(“.introText”);
//div文本应以消息[0]开头并循环到
//消息[4],在消息[0]处重新启动
$.each(消息、函数(){
//隐藏先前显示的项目
如果(i==0){
如果(i>=4){
$.queue(Div[0],“fx”,function(){
$(这个)。隐藏(“慢”);
$.dequeue(这个);
});
}否则{
$.queue(Div[0],“fx”,function(){
$(this.html(Messages[i-1]).hide(“slow”);
$.dequeue(这个);
});
}
//显示新项目
$.queue(Div[0],“fx”,function(){
$(this.html(Messages[i]).show(“slow”);
i=i++;
$.dequeue(这个);
});
}否则{
//循环返回并再次显示第一项
$.queue(Div[0],“fx”,function(){
i=0;
$(this.html(Messages[i]).show(“slow”);
$.dequeue(这个);
});
}
});
}
//运行它
IntroText();

一种解决方案是使用
setInterval()
进行适当的循环。使用
fadein()
/
fadeOut()
模运算显示和隐藏内容,您可以检查何时必须重新启动计数
startMessage
允许您从任何项开始启动循环消息

/*
按顺序淡入淡出上面的每个字符串作为div的内容
循环
*/
变量消息=[
“通过智能手机进行的成熟节食”,
“学术伊奇饮食”,
“仅限400.00南非兰特/年”,
“在手机上遵循这一超级饮食”,
""
];
函数IntroText(){
var Div=$(“.introText”)
var startMessage=0;
setInterval(函数(){
Div.html(Messages[startMessage]).fadeIn().delay(1000.fadeOut();
startMessage++;
如果(startMessage%Messages.length==0){
startMessage=0;
}
},2000)
}
//运行它
IntroText()

一种解决方案是使用
setInterval()
进行适当的循环。使用
fadein()
/
fadeOut()
模运算显示和隐藏内容,您可以检查何时必须重新启动计数
startMessage
允许您从任何项开始启动循环消息

/*
按顺序淡入淡出上面的每个字符串作为div的内容
循环
*/
变量消息=[
“通过智能手机进行的成熟节食”,
“学术伊奇饮食”,
“仅限400.00南非兰特/年”,
“在手机上遵循这一超级饮食”,
""
];
函数IntroText(){
var Div=$(“.introText”)
var startMessage=0;
setInterval(函数(){
Div.html(Messages[startMessage]).fadeIn().delay(1000.fadeOut();
startMessage++;
如果(startMessage%Messages.length==0){
startMessage=0;
}
},2000)
}
//运行它
IntroText()

<div class="introText"></div>

<script>
    /*
        Fade each above string in and out as content for the div sequentially
        in a loop
    */
    var Messages = [
        "Matured Dieting via Smartphone",
        "The Academic IQHE Diet",
        "For only R 400.00 / year",
        "Follow this super diet on mobile",
        "<a href=\"http://www.m.smartpeeps.co.za\">m.smartpeeps.co.za</a>"
    ];

    function IntroText() {
        var i = 0;
        var Div = $(".introText");

        // div text should start with Messages[0] and loop to
        // Messages[4], the restart at Messages[0] 
        $.each(Messages, function() {
            // hide the previously shown item
            if (i == 0) {
                if (i >= 4) {
                    $.queue(Div[0], "fx", function() {
                        $(this).hide("slow");
                        $.dequeue(this);
                    });
                } else {
                    $.queue(Div[0], "fx", function() {
                        $(this).html(Messages[i - 1]).hide("slow");
                        $.dequeue(this);
                    });
                }

                // display the new item
                $.queue(Div[0], "fx", function() {
                    $(this).html(Messages[i]).show("slow");
                    i = i++;
                    $.dequeue(this);
                });
            } else {
                // loop back and display the first item again
                $.queue(Div[0], "fx", function() {
                    i = 0;
                    $(this).html(Messages[i]).show("slow");
                    $.dequeue(this);
                });
            }
        });
    }

    // run it
    IntroText();
</script>