jQuery setInterval&的setTimeout

时间:2011-10-19 09:33:23

标签: javascript jquery settimeout setinterval

我的jQuery代码存在轻微问题。 我基本上有一个循环通过一组图像的计时器,它位于setInterval

当我点击右侧或左侧控制器时,它会停止间隔并根据用户点击而不是自动淡化图像。

$('a.right').click(function () {

    clearInterval(myInterval);
    setTimeout(function () { slideshow(); }, 9000);

    if (count < max - 1) {
        $('div.feature-image').eq(count).fadeOut('1000', function () {

            count++;
            $('div.feature-image').eq(count).fadeIn('1000');
            info++;
            $('div.img-info').html(info + ' of ' + max + ' | ');


        })

    }

我使用setTimeout等待4秒然后继续循环周期。 虽然我不认为这是最优雅的方式,因为Jquery不知道停止if语句。有没有办法在setTimeout上停止if语句来执行它的功能?

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解了这个问题,但是这样的事情

setTimeout(function () {
  setTimeoutTriggered = true;
  slideshow();
}, 9000);

if ( (count < max - 1) && !setTimeoutTriggered ) {
  ...
}

当然,您可以为setTimeoutTriggered提供更多语义名称。 并且最好避免全局变量:)

无论如何,我发现这个jQuery插件非常适合管理超时和间隔! http://plugins.jquery.com/project/timers