0

我目前有一个 JavaScript 文件,它将每五秒钟更改一次显示的推荐。一切正常,除了前五秒,什么都没有出现。如果我在调用 JavaScript 函数的地方设置了一个值,它最初会显示出来,然后被第一个推荐的内容替换。

这是调用 JavaScript 的 HTML 代码。

<html>
<head>

<SCRIPT language="JavaScript" SRC="textCycle.js"></SCRIPT>
</head>
<body>
    <table border = 0><tr><td style="width:300px;"> <!-- Change the height in order to determine width of quotes -->
    <div id="change"></div></td></tr></table>
</body>
</html>

这是Javascript:

var quotes=new Array(5);
var i = 0;
var authors=new Array(5);

//Load Quotes into array
quotes[0]="\"Website is awesome!\"";

quotes[1]="\"Love it!\"";

quotes[2]="\"Awesome site!\"";

quotes[3]="\"This site was very informative and helped with my problem.\"";

quotes[4]="\"Best site for helping with this issue.\"";

//Load authors that correspond with the quote array
authors[0]="Anonymous";

authors[1]="Anonymous";

authors[2]="Anonymous";

authors[3]="Anonymous";

authors[4]="Anonymous";

//Call the changeText() function every 5000 miliseconds
setInterval(changeText, 5000);

//Function that determine what quote and author to put in html.
function changeText(){
    document.getElementById("change").innerHTML=(quotes[i] + '<p style="text-align: right"><i>' + authors[i] + '</i></p>');
    if(i == 4)
        i = 0;
    else
        i++;
}

这只是更改 javascript 文件以使引号 [0] 位于循环之外的问题吗?

注意:数组中的值已更改以保持匿名。这些都不是真实的见证。

4

3 回答 3

1

只需changeText()在代码之前的任何位置添加(调用您的函数)即可setInterval()。好吧,这不是强制性的。

小提琴

于 2013-02-20T17:32:39.197 回答
0

setInterval在第一次执行之前等待间隔持续时间(5 秒)。

你可以在设置间隔之前调用它一次,你会很高兴的。例如:

//Call the changeText() function every 5000 miliseconds
changeText();
setInterval(changeText, 5000);
于 2013-02-20T17:36:26.530 回答
0

changeText()如果您如上所述添加调用,它可能仍然无法正常工作。这是因为 DOM 还没有被解析。您应该在 DOM 准备好后调用它。一种方法是将其放入onload事件中。这是没有第三方库的最简单方法,但也要等到所有图像都加载完毕。这是一个例子:

<body onload="changeText()">
于 2013-02-20T17:39:19.523 回答