这个Javascript函数一直在循环,我怎样才能让它运行一次呢?
该代码旨在以键入方式为某些文本设置动画。我想让它运行一次,但它会在句子中不断循环。我该如何阻止它循环通过。代码的顶部收集输入值并将其放入数组,这一切都很好。这只是我遇到的问题这个Javascript函数一直在循环,我怎样才能让它运行一次呢?,javascript,loops,Javascript,Loops,该代码旨在以键入方式为某些文本设置动画。我想让它运行一次,但它会在句子中不断循环。我该如何阻止它循环通过。代码的顶部收集输入值并将其放入数组,这一切都很好。这只是我遇到的问题 var yourWord = document.getElementById("myText").value; var yourtext = "I took the word " + yourWord + "..."; var infomation = [yourtext, 'I looked at
var yourWord = document.getElementById("myText").value;
var yourtext = "I took the word " + yourWord + "...";
var infomation = [yourtext,
'I looked at the most relevant news article relating to it...',
'And created this piece of art from the words in the article! '
],
part,
i = 0,
offset = 0,
pollyLen = Polly.length,
forwards = true,
skip_count = 0,
skip_delay = 5,
speed = 100;
var wordflick = function () {
setInterval(function () {
if (forwards) {
if (offset >= infomation[i].length) {
++skip_count;
if (skip_count == skip_delay) {
forwards = false;
skip_count = 0;
}
}
} else {
if (offset == 0) {
forwards = true;
i++;
offset = 0;
if (i >= pollyLen) {
i = 0;
}
}
}
part = infomation[i].substr(0, offset);
if (skip_count == 0) {
if (forwards) {
offset++;
} else {
offset--;
}
}
$('#pollyInfo').text(part);
}, speed);
};
$(document).ready(function () {
wordflick();
});
修改行:
setInterval(function () {
进入:
然后清除设置i=0的间隔
if (i >= pollyLen) {
i = 0;
}
致:
这应该能行 具体是什么循环?我的意思是,有设定间隔,它会重复,但这就是它的重点。我看不到任何其他循环。如果不希望它循环,请不要使用
setInterval()
。只需执行一次代码,并在需要再次执行时调用函数。语句数组不断循环。我希望它在它们之间循环一次,然后停止。将setInterval
的结果分配给一个变量。当您到达数组的末尾时,调用clearInterval(thatVariable)
编辑问题以添加澄清,而不仅仅是将其放在注释中。谢谢,这已经奏效了。你帮了我很大的忙
if (i >= pollyLen) {
i = 0;
}
if (i >= pollyLen) {
i = 0;
clearInterval(interval);
}