首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带字段更新的循环问题的setTimeout

带字段更新的循环问题的setTimeout
EN

Stack Overflow用户
提问于 2014-02-07 22:54:21
回答 2查看 75关注 0票数 1

我试图在计时器上循环一个列表(目前是1秒,但我希望它更快)。问题是当前的值没有在视觉上被更新&我不明白为什么。

当我循环使用 firebug 时,按预期工作,但是没有firebug,它没有显示文本change...is,它以某种方式跳过了文本更新吗?

我将计时器设置为1秒;当然,.html()调用不会花费更长时间。谢谢你提供任何信息。

我的HTML很简单:

代码语言:javascript
运行
复制
<div id="winner2"><h1></h1></div>
<div id="button"">
<img id="start" src="start.png" />
<img id="stop" src="stop.png" />
</div>

我的JS是:

代码语言:javascript
运行
复制
var people = ["a", "b", "c"];
        var counter = 1;
        var run;
        $(document).ready(function(){ 
        $("#winner2 h1").html("a");
        $("#stop").hide();

        $( "#start" ).click(function() {
            $("#start").hide();
            $("#stop").show();
            run = setTimeout (nameIncrement(),1000);
        });

        $( "#stop" ).click(function() {
            $("#stop").hide();
            $("#start").show();
            clearTimeout(run);
        });

        function nameIncrement() {
            if(counter == people.length) {
                counter=0;
            }       
            $("#winner2 h1").html(people[counter]);
            counter++;
            run = setTimeout (nameIncrement(),1000);
        }       
        }); 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-07 23:17:52

您正在调用nameIncrement()并将其返回值传递给setTimeout(),而不是传递nameIncrement

删除括号:

代码语言:javascript
运行
复制
run = setTimeout(nameIncrement, 1000);

小提琴

票数 1
EN

Stack Overflow用户

发布于 2014-02-07 23:02:32

看起来,您正在运行一个递归函数,而不需要定义退出条件。这可能会导致浏览器超载,浏览器决定不运行该函数。

尝试:

代码语言:javascript
运行
复制
function nameIncrement() {
            if(counter == people.length) {
                counter=0;
                return;
            }       
            $("#winner2 h1").html(people[counter]);
            counter++;
            run = setTimeout (nameIncrement(),1000);
        }       
        });

然而,在调试模式下,浏览器不那么防御性强,所以您可以自己看到错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21639252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档