【问题标题】:setTimeout runs only once instead of repeatedly [closed]setTimeout 只运行一次而不是重复[关闭]
【发布时间】:2014-08-17 15:14:40
【问题描述】:

我想在每 2 秒后使 div 淡入和淡出,但 setTimeout 函数只运行一次并隐藏 div,但仅此而已。它不会不止一次这样做:

HTML:

<a href="javascript:void(0);">Pyp1</a>
<div id="disable">
    Hello!
</div>

JavaScript (jQuery):

$(document).ready(function(){
    setTimeout(function() {
        $('#disable').toggle('fast');
    }, 2000);
});

Fiddle

但是,当我为单击事件编写相同的内容时,它实际上可以工作:

$(document).ready(function(){
    $('a').click(function() {
        $('#disable').fadeToggle('fast')
    });
});

Fiddle

我尝试过四处搜索(也在 Stack Overflow 中)但无法得到答案,我尝试了点击方法并且它有效,但这不是我要寻找的结果。

问题究竟出在哪里,我该如何解决?

【问题讨论】:

  • setTimeout 运行一次,setInterval 运行多次
  • @dandavis 该死!严重忘记了,抱歉,会删除问题以保持质量,但还有一件事:我听说过一段时间,它实际上停止工作,setinterval,有没有替代方案?
  • 你可以从函数底部调用setTimeout调用...
  • 有点不清楚,能不能举个例子之类的?
  • $(document).ready(function FN(){ setTimeout(function() { $('#disable').toggle('fast'); setTimeou(FN, 2000) }, 2000 );});

标签: javascript


【解决方案1】:

这是因为setTimeout只运行一次,你怎么能指望它运行多次呢?请改用setInterval

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 2017-01-24
    • 1970-01-01
    • 2022-01-22
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    相关资源
    最近更新 更多