Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Javascript函数一直在循环,我怎样才能让它运行一次呢?_Javascript_Loops - Fatal编程技术网

这个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);
}